Como faço para acessar a classe de super TreeSelectionListener em Java?
-
16-09-2019 - |
Pergunta
this.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
// How do I access the parent tree from here?
}
});
Solução
TreeSelectionListener
é uma interface, então a única classe pai seria Object
, que você deve ser capaz de chamar com super
.
Se você significava chamando algum método da classe delimitador, você pode chamá-lo diretamente como dentro de um método.
Outras dicas
Você pode usar 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();
}
}
No entanto, se você só precisa de acesso de um membro na instância juntando, ao invés de receber uma referência para o próprio exemplo, você pode simplesmente acessá-lo diretamente:
Runnable r = new Runnable() {
public void run() {
System.out.println(name); // Access Test.this.name
}
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow