Java では、一般に、このポインタは現在アクセスされているコードのオブジェクトを指します。ただし、外部クラスのオブジェクトを内部クラスで使用する必要がある場合は、外部クラスのクラス名を使用して修飾する必要があります。それ。 この方法は Android 開発でも比較的一般的です。
@Author: twlkyaopackage twlkyao; public class A { public A() { Inner inner = new inner(); // 内部クラスの外部メソッドを呼び出します。 // A の外部メソッドを呼び出します。 . } public void inner() { System.out.println("アウターラン") } クラス インナー { public void inner(){ System.out.println("inner run"); A.this.outer(); // A の外部メソッドを呼び出す System.out.println("--------"); } } public static void main(String[] args) { A a = 新しい A();
Inner は、クラス A の external() メソッドにアクセスする内部クラスです。匿名内部クラスも同じメソッドを持つため、A の this ポインタを使用して修飾する必要があります。
出力は次のとおりです。
インナーランアウターラン--------アウターラン