Я новичок в Java и читаю книгу для своего экзамена OCJP. В своей заявленной заявке нестационарный внутренний класс может иметь статические члены только в том случае, если они объявлены статическим окончанием. Но я получаю ошибку компиляции, когда пытаюсь создать класс контейнера static final object
.Ошибка компиляции при статическом конечном объекте внутри нестатического внутреннего класса
class Logger {
private Logger() {
// private constructor for singleton
}
public class LoggerHolder { // non static inner class
public static final int x =10; // No compile here
public static final Logger logger = new Logger(); //Compile error
}
//"The field logger cannot be declared static; static fields can only be declared in static or top //level types"
public static Logger getInstance() {
return LoggerHolder.logger;
}
}
Параметр 'logger' не известно во время компиляции, поэтому он не допускается. –
Mhh, 'Logger' и' Logger4' ... где может быть проблема? – Tom
@Tom oh ... извините, мой плохой .... это был копирование паста ошибка. Я отредактировал его сейчас ... –