나는 그것을 기대하지만이 작품 것을 발견했습니다되지 않음 :Java : 익명의 내부 클래스가 외부 클래스의 메서드에 액세스 할 수있는 이유는 무엇입니까? 최근
내가 Outer.this.foo을 기대class Outer
{
Button b;
void foo() {}
void bar()
{
b = new Button();
b.setOnClickListener(new OnClickListener(){
@Override
public void OnClick()
{
foo();
}
});
}
}
() 필요하지만 보인다 될 단순히 foo는() 또한 작동합니다. 누군가이 언어에 정확히 언제 추가되었는지 말할 수 있습니까? 정확한 이름 확인 규칙을 이해할 수 있도록 도와주세요. 감사!
질문 :
1) 왜이 작업은?
2)이 방법이 효과가 있다면 왜 "외부"라는 구문이 필요합니까?
이것은 언어 디자인에 대한 불만입니까? –
아니요, 여기서는 정확한 이름 확인 규칙을 이해하고 싶습니다. –
나는 당신의 질문을 매우 유용하다고 생각하지 않습니다. 또한 오프 사이트 리소스를 요구하는 것은 주제 밖입니다. –