كيف يمكنك الحصول على مرجع للفئة المرفقة من فئة داخلية مجهولة في جافا؟[ينسخ]
سؤال
هذا السؤال لديه بالفعل إجابة هنا:
أقوم حاليًا بإنشاء مرجع صريح لهذا في الفصل الخارجي حتى يكون لدي اسم للإشارة إليه في الفصل الداخلي المجهول.هل هناك طريقة أفضل للقيام بذلك؟
المحلول
لقد وجدت هذا مؤخرا.يستخدم 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 حيث الاسم هو الحقل الثابت أو الطريقة.
لا تنتمي إلى StackOverflow