كيف يمكنني الوصول إلى الفئة الفائقة من الاصجراء leTectionerner في جافا؟
-
16-09-2019 - |
سؤال
this.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
// How do I access the parent tree from here?
}
});
المحلول
TreeSelectionListener
هي واجهة، لذلك سيكون الفصل الوالد الوحيد Object
, ، والتي يجب أن تكون قادرا على الاتصال بها super
.
إذا كنت تعني استدعاء بعض الأسلوب من الفئة المرفوعة، فيمكنك الاتصال به بشكل مباشر كما في غضون طريقة.
نصائح أخرى
يمكنك استخدام OuterClass.this
:
public class Test {
String name; // Would normally be private of course!
public static void main(String[] args) throws Exception {
Test t = new Test();
t.name = "Jon";
t.foo();
}
public void foo() {
Runnable r = new Runnable() {
public void run() {
Test t = Test.this;
System.out.println(t.name);
}
};
r.run();
}
}
ومع ذلك، إذا كنت بحاجة فقط إلى الوصول إلى عضو في الحالة المرفوعة، بدلا من الحصول على مرجع إلى المثيل نفسه، يمكنك فقط الوصول إليه مباشرة:
Runnable r = new Runnable() {
public void run() {
System.out.println(name); // Access Test.this.name
}
};
لا تنتمي إلى StackOverflow