이 문제와 관련된 유사한 질문이 있다는 것을 알고 있지만 문제를 해결할 수 없었습니다. 내 문제를 다음 코드로 단순화하려고했습니다.
class Outer
{
Outer()
{}
class Inner
{
Inner()
{}
}
void func()
{
System.out.println("Outer");
}
}
public class Nested
{
public static void main(String args[])
{
Outer oo = new Outer();
Outer.Inner ii = oo.new Inner();
// ii.func(); I know this won't work
}
}
내부 클래스 "ii"의 객체에서 외부 클래스 함수 "func ()"를 호출 할 수 있습니까?. ?? 그렇다면 어떻게?
짧은 대답 :에 대한 참조 Outer.this
가 private
에 Inner
있으므로 .NET Framework 의 Outer
인스턴스에서 인스턴스에 대한 참조에 액세스 할 수 없습니다 Inner
.
따라서이 참조를 내보낼 수 있습니다.
class Outer {
Outer() {
}
class Inner {
Inner() {
}
public Outer getOuter() {
return Outer.this;
}
}
void func() {
System.out.println("Outer");
}
}
그런 다음 간단하게 할 수 있습니다.
ii.getOuter().func();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다