Во время написания кода я столкнулся со странным поведением компилятора Java.
При компиляции класса (источник ниже) компилятор выдает ошибку ("inner classes cannot have static declarations") для переменной класса NULL. Это ожидаемо!
Однако в переменной класса ZERO не возникает никаких ошибок. Этого я не понимаю !
Почему эта разница, которая, кажется, позволяет статические объявления простых типов, но не объектов, во внутренних классах.
(javac-версия: 1.6.0_24)
public class Outer {
public static final Runnable HELLO = new Runnable() {
// No compiler error
public static final int ZERO = 0;
// Causes compiler error: "inner classes cannot have static declarations"
public static final Object NULL = null;
@Override
public void run() {
System.out.println("Hello " + ZERO + NULL);
}
};
}
Подробнее здесь: https://stackoverflow.com/questions/125 ... arations-e
Загадка ошибки компилятора Java: «внутренние классы не могут иметь статические объявления» - за исключением простых типо ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение