我目前在外部類中創建了一個明確的引用,這樣我就可以在匿名內部類中引用一個名稱。有一個更好的方法嗎?如何從Java中的匿名內部類獲取對封閉類的引用?
47
A
回答
85
我剛剛發現這個最近。使用OuterClassName.this
。
class Outer {
void foo() {
new Thread() {
public void run() {
Outer.this.bar();
}
}.start();
}
void bar() {
System.out.println("BAR!");
}
}
更新如果你只是想對象本身(而不是調用成員),那麼Outer.this
是要走的路。
19
使用EnclosingClass.this
1
,您仍然可以使用Outer.class來獲取類的外部類對象(這將返回相同的類對象Outer.this.getClass(),但更高效)
如果你想訪問封閉類中的靜態屬性,可以使用Outer.name,其中name是靜態字段或方法。
相關問題
- 1. 獲取對匿名內部類的類對象的引用
- 2. 從Java匿名內部類
- 3. java如何從內部內部類實現對封閉類的訪問?
- 4. 在Java中,我如何從內部引用一個匿名內部類?
- 5. 必須內部類有對封閉類的引用嗎?
- 6. Java:從匿名類獲取超類
- 7. Java中的公共匿名內部類
- 8. 如何在bindView方法的匿名內部類中獲取FragmentActivity引用?
- 9. 如何從匿名類中獲取原始類? Java
- 10. 如何從不使用外部類名的內部類獲取對外部類的引用?
- 11. 隱式引用Java中的封閉類
- 12. 如何從匿名內部類獲取價值?
- 13. 從內部匿名類
- 14. 如何引用Kotlin中的匿名內部類?
- 15. 添加刪除鏈接到ListView - 如何從內部匿名類中引用外部匿名類
- 16. 匿名內部類
- 17. Java:在匿名內部類中調用外部類方法
- 18. FindBugs的被反對匿名內部類
- 19. 如何從匿名類中獲取不同類型的數據
- 20. 獲取匿名或內部類的超類
- 21. 如何使調用匿名內部類
- 22. 做匿名類*總是*保持對其封閉實例的引用?
- 23. 如何將變量傳遞給Java中的匿名內部類?
- 24. 如何修復java中的匿名內部類
- 25. 如何返回匿名內部類中的對象?
- 26. Java - 匿名內部類生命週期
- 27. 如何在抽象java類中獲取對子類的引用
- 28. 匿名類可以訪問其封閉類的成員嗎?
- 29. 如何找出類名所表示的內部匿名類?
- 30. 如何引用Java中的匿名類或嵌套類的包含類
謝謝!這一直困擾着我太久。很高興的答案是快速谷歌搜索了。 – aglassman 2013-06-27 17:57:28