Самостоятельно назначенная? Что это такое?JAVA

Программисты JAVA общаются здесь
Anonymous
Самостоятельно назначенная? Что это такое?

Сообщение Anonymous »

Я кодировал в Java с 2005 года и никогда не думал, что такой код действительно будет компилируемым: < /p>

Код: Выделить всё

public class FooClass {

public static final String FOO = FooClass.FOO;

}
< /code>
Идея Intellij называет ее «инициализированной с самостоятельным назначением».
Если кто -то показал мне этот код и спросил, будет ли он компилировать или нет, я был бы на 100% уверен, что это должна быть ошибка компиляции, так как переменная на самом деле не была явно назначена в какую -либо ценность.public class FooClass {
public static final String FOO_1 = FooClass.FOO_2;
public static final String FOO_2 = FooClass.FOO_1;
}
Без сложно, что такая переменная, по -видимому, эффективно содержит значение null . Но, черт возьми, почему? Кто -то сделал рефакторинг и заменил фактическую константу строки с помощью этой самооценки. Убедить меня в том, что это не языковая ошибка на Java, потому что в противном случае это неприятный способ стрелять в ногу!>

Подробнее здесь: https://stackoverflow.com/questions/795 ... whats-that

Вернуться в «JAVA»