저는 Java를 처음 사용하고 OCJP 시험을 위해 책을 읽는 사람입니다. 이 책에서는 정적이 아닌 내부 클래스는 static final로 선언 된 경우에만 정적 멤버를 가질 수 있습니다.. 하지만 컨테이너 클래스의 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
@ 톰 오 ... 미안, 내 나쁜 .... 그 붙여 넣기 실수를 복사했다. 나는 지금 그것을 편집했다 ... –