Если у меня есть класс SOmeClass с методом someMethod, в следующем коде, как компилятор читает член класса someConstant?
Код: Выделить всё
Class SomeClass{
private int someConstant = someMethod(3); //3 is arbitrary
private int anotherConstant;
SomeClass(){
//constructor
anotherConstant = someConstant;
}
public int someMethod(int an_int_value){
//something
return new_int;
}
Этот вопрос связан с тем, что я не понимаю, как работают компиляторы. И как машина читает код. Константа someConstant не может быть инициирована до тех пор, пока не будет создан экземпляр класса, поскольку компилятору необходимо знать, что делает метод someMethod. Но конструктор не может быть завершен, потому что у другого константы тоже должно быть это неизвестное значение. Мне кажется (человеку без опыта работы в информатике), что это ловушка-22. Этот вопрос не ограничивается Java. Это просто мой самый знакомый язык.
Подробнее здесь:
https://stackoverflow.com/questions/468 ... rs-in-java