JLS 15.9.2은 포함하는 인스턴스를 결정하는 방법을 알려줍니다. C를 인스턴스화 할 클래스로 만들고 i를 인스턴스로 만듭니다.정적 컨텍스트에서 로컬 클래스 인스턴스 생성 식
가[...]
는 C가있는 경우 : C는 내부 클래스 인 경우 다음과 같이
, 그럼 결정 (§8.1.3)를 직접 둘러싸 인스턴스를 가질 수있다 다음 로컬 클래스 :
C 정적 콘텍스트에서 발생하면, 그때에는 즉시 인스턴스를 둘러싸는 없다. 클래스 인스턴스 생성식이 정적 맥락에서 발생하는 경우
그렇지 않으면, 다음 컴파일 타임 오류가 발생합니다.
그렇지 않으면, O는 C.를 직접 둘러싸는 클래스가 O는 전적으로 클래스 인스턴스 생성식이 나타나는 클래스의 타입 선언 를 둘러싸는 n 번째입니다 같은 있다는 정수 n은하자가 될 수 있습니다.
제가 직접 둘러싸 인스턴스 이 어휘의 인스턴스를 둘러싸는 n 번째이다.
나는 굵은 글씨의 의미를 알지 못했습니다. 제가 컴파일 할 예정되지 않은 예제를 제공하자
class A{
int a;
public static void main (String[] args) throws java.lang.Exception{
class Foo{
void bar(){
}
}
Foo f = new Foo(); //Instance creation expression occured in the static context
}
}
그 문제점은 무엇입니까? 두 번째 요점을 설명하는 실제 예제를 제공 할 수 없었습니까?
그러나 B 클래스는 로컬 클래스가 아닙니다. 나는 표시된 선이 정확하게 지역 수업에 대해 이야기하고 있다고 생각했다. –
흠, 네 말이 맞아. 내가 체크해 볼게. –
OK, 포기합니다. 나는 또한 그 문장이 무엇을 의미하는지 모른다. 나는 더 깊이 파고 들어야 할 것이다. –