كيف يمكنك الحصول على مرجع للفئة المرفقة من فئة داخلية مجهولة في جافا؟[ينسخ]

StackOverflow https://stackoverflow.com/questions/31201

  •  09-06-2019
  •  | 
  •  

سؤال

هذا السؤال لديه بالفعل إجابة هنا:

أقوم حاليًا بإنشاء مرجع صريح لهذا في الفصل الخارجي حتى يكون لدي اسم للإشارة إليه في الفصل الداخلي المجهول.هل هناك طريقة أفضل للقيام بذلك؟

هل كانت مفيدة؟

المحلول

لقد وجدت هذا مؤخرا.يستخدم OuterClassName.this.

class Outer {
    void foo() {
        new Thread() {
            public void run() {
                Outer.this.bar();
            }
        }.start();
    }
    void bar() {
        System.out.println("BAR!");
    }
}

محدث إذا كنت تريد الكائن نفسه فقط (بدلاً من استدعاء الأعضاء)، إذن Outer.this هو الطريق للذهاب.

نصائح أخرى

يستخدم EnclosingClass.this

لا يزال بإمكانك استخدام Outer.class للحصول على فئة كائن الفئة الخارجية (والذي سيعيد نفس كائن Class مثل Outer.this.getClass() ولكنه أكثر كفاءة)

إذا كنت تريد الوصول إلى الإحصائيات في الفئة المتضمنة، فيمكنك استخدام Outer.name حيث الاسم هو الحقل الثابت أو الطريقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top