Şu an dış sınıfta açık bir referans yapıyorum, böylece anonim iç sınıfta atıfta bulunmak için bir ismim var. Bunu yapmanın daha iyi bir yolu var mı?Java'daki anonim bir iç sınıftan çevreleyen sınıfa nasıl başvuru yaparsınız?
47
A
cevap
85
Ben sadece son zamanlarda buldum. OuterClassName.this
kullanın. Sadece nesne kendisi (yerine çağrılırken üyeleri), ardından Outer.this
gitmek yoludur istiyorsanız
class Outer {
void foo() {
new Thread() {
public void run() {
Outer.this.bar();
}
}.start();
}
void bar() {
System.out.println("BAR!");
}
}
güncellendi.
19
Kullanım EnclosingClass.this
1
Hala erişmek istiyorsanız
((Outer.this.getClass aynı Sınıf nesneyi döndürmek) ama daha verimlidir olacaktır) dış sınıf nesnesinin sınıfını almak için Outer.class kullanabilirsiniz Ekleyen sınıftaki statics, Outer.name adını kullanarak adın statik alan veya yöntemdir.
İlgili konular
- 1. , bir iç sınıfa
- 2. Erişim "bu" Java anonim sınıftan
- 3. Anonim bir sınıfa fazladan özellik ekleme
- 4. Özel statik alanlar, çevreleyen tarafından kalifiye olduğunda iç içe geçmiş sınıftan görülebilir mi?
- 5. Dış sınıftan erişen iç sınıf
- 6. Anonim bir iç sınıf, ilkellerine vb. Erişirken her zaman "bu" (dış) nesneye bir başvuru yakalar mı?
- 7. Anonim (iç) sınıflarda yöntem çağırma
- 8. Dış sınıfın "bu" bir iç sınıftan nasıl erişilebilir?
- 9. Java'da boş anonim iç sınıf
- 10. İç içe anonim işlevler Clojure
- 11. Anonim İç Sınıf İçerisindeki İşaretli İstisnalar Atma
- 12. Anonim bir iç yöntemi bir noktadan nasıl hariç tutulur?
- 13. Sorun: Geçerli derlemede bir sınıfa ilişkin tüm başvuru tanınmadı
- 14. Başka bir sınıftan bir dizi nasıl alınır
- 15. Delege yöntemine başka bir sınıftan nasıl erişilir?
- 16. Normal ifadeyle javadaki URL nasıl doğrulanır?
- 17. Özel iç sınıf, beklenmeyen anonim sınıfı sentezler
- 18. Diğer sınıftan enum değerlerine erişme
- 19. Java'da, iç sınıfta olmadığım zaman dış sınıfa nasıl erişebilirim?
- 20. İç/anonim sınıflar için en iyi yöntem
- 21. İç içe geçmiş C++ şablonlarında başvuru türü
- 22. Bir Fragman içindeki LocationManager'a nasıl başvuru yapılır
- 23. Orientdb'de kenarı nasıl benzersiz yaparsınız
- 24. Bir sınıftan diğerine veriler nasıl eklenir
- 25. java iç sınıflar yöntem erişimi
- 26. Vim çevreleyen boşlukları sil
- 27. Türetilmiş bir sınıftan C#
- 28. Bir arrayList'i başka bir sınıftan nasıl güncellersiniz?
- 29. C# sınıfındaki bir sınıftan bir mesaj kutusu göster?
- 30. Bir sınıfa bir kimliğin önceliğini nasıl verebilirim?
TEŞEKKÜR EDERİZ! Bu beni çok uzun zamandır rahatsız ediyor. Cevabın hızlı bir google araması olduğunu sevindim. – aglassman