У меня есть один базовый класс и один дочерний класс. Где оба класса не имеют одноэлементного конструктора (без сохранения состояния), который содержит поля состояния, которые не являются потокобезопасными.
В этом случае я объявил защищенную переменную со значением по умолчанию и на основании определенных условий обновляю защищенные переменные. А в дочернем классе я использую обновленные значения переменных. Это нормально работает с обычными случаями, но это приведет к неожиданным результатам при работе с несколькими потоками.
Может кто-нибудь предложить лучший способ справиться с этим вариантом использования без добавления одноэлементного конструктора в класс?
Пример кода: (просто фиктивный код для понимания проблемы)
public class ParentClass {
protected int score = 0;
public void updateScore() {
//update the variable based on certain conditions
score = 99;
}
}
Детский класс
public class ChildClass extends ParentClass{
public static void main(String[] args) {
ChildClass c = new ChildClass();
c.updateScore();
c.printScopre();
}
private void printScopre() {
System.out.println("Score " + score);
}
}