У меня есть переменная класса, которая является окончательной и устанавливается в конструкторе. Когда я проверяю его значение в конструкторе абстрактного класса и подкласса, это правильное значение. Но когда я проверяю это позже в методе, это всегда ложно. Вот мой код.
abstract class AbstractArticleObject extends StructureObject {
final boolean firstArticle;
AbstractArticleObject(Element element, boolean firstArticle) {
super(element);
this.firstArticle = firstArticle;
...
}
}
class ArticleObject extends AbstractArticleObject {
ArticleObject(Element element, boolean firstArticle) {
super(element, firstArticle);
// In this method, firstArticle is whatever was passed in, which is sometimes true.
Log.v(title, String.format(String.valueOf(this.firstArticle));
}
@Override
StructureState getState() {
// In this method, firstArticle is always false.
Log.v(title, String.format(String.valueOf(firstArticle));
if (...) {
...
} else if (...) {
if (firstArticle) {
return StructureState.CAN_OPEN;
} else {
...
}
}
return StructureState.NOT_SET;
}
}
Если я устанавливаю значение в конструкторе, а значение является окончательным, почему оно возвращает false, даже если для него установлено значение true?