public class MyClass {
private final Logger logger = Logger.getLogger(""); // Compliant, object initialized and used (never reassigned but ok because "final" keyword used)
private Object myNonFinalAndReassignedObject = new Object(); // Compliant, reassigned in method
private final Object myFinalAndNotReassignedObject = new Object(); // Compliant, object initialized and never reassigned but 'final' keyword used
private static final String CONSTANT = "toto"; // Compliant, because 'static' and 'final' keywords
private String varDefinedInClassReassigned = "0"; // Compliant, reassigned in method
private String varDefinedInConstructorReassigned = "1"; // Compliant, reassigned in constructor
public MyClass() {
varDefinedInConstructorReassigned = "3";
logger.info(varDefinedInConstructorReassigned);
}
void localVariableReassigned() {
String y1 = "10"; // Compliant, reassigned above
final String PI = "3.14159"; // Compliant, not reassigned but 'final' keyword used
y1 = "titi";
logger.info(y1);
logger.info(PI);
}
void localVariableIncrement() {
String y2 = "10"; // Compliant, reassigned above
y2 += "titi";
logger.info(y2);
}
void localIntVariableIncrement() {
int y3 = 10; // Compliant, reassigned above
++y3;
logger.info(y3+"");
}
void classVariableReassigned() {
varDefinedInClassReassigned = "1";
logger.info(varDefinedInClassReassigned);
logger.info(varDefinedInClassNotReassigned);
logger.info(CONSTANT);
}
void classVariableReassignedBis() {
varDefinedInClassReassigned = "2"; // method to avoid sonarqube error asking for moving class variable "varDefinedInClassReassigned" to local variable method
myNonFinalAndReassignedObject = new Object();
logger.info(varDefinedInClassReassigned);
logger.info(myNonFinalAndReassignedObject);
logger.info(myFinalAndNotReassignedObject);
}
}