2012-11-12 12 views
7

ben bir arabirim uygulayan bir sınıf var:Scala'dan Java arabirimi uygulayan bir sınıfta bildirilen bir değişkene neden erişemiyorum? Java'da

AlertDialog.BUTTON_POSITIVE 

Ama Scala yukarıdaki çizgi derleme değil: Bazı değişkenler arayüzünün içinde bildirilen ise

AlertDialog implements DialogInterface 

Onları erişebilecek . Gizli gibi görünüyor. Scala'da yeni bir nesne oluşturmadan veya başka bir şey yapmadan bu değişkenlere erişmenin bir yolu var mı?

cevap

2

Scala'da bu değişkenlere AlertDialog sınıfından erişebilmenin bir yolu yoktur, ancak arabirime kendisini erişmek için bir nesne olarak kullanabilirsiniz.

DialogInterface.BUTTON_POSITIVE 
+1

Bir dakika bekleyin. bir soru ** VE ** aynı anda bir cevap yazdınız mı? – UmNyobe

+4

@UmNyobe Bu, yapılması çok güzel bir şey. Http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions adresine bakın. –

+1

Kendi sorunuza cevap verebilirsiniz. bu iyi. Bir soru göndermek ve aynı zamanda bir cevap koymak zahmetli. Artı o farklı bir insanmış gibi cevap veriyor :). – UmNyobe

14

biraz daha ayrıntı vermek gerekirse:

Yani doğrudan arayüzden değişkenleri erişebilirler bu accesed edilemez nedeni George arabirimde tanımlanan statik üyeleri bahsediyor olmasıdır. Scala'nın statik üyeleri yoktur - bunun yerine, tek bir uygulama ile normal bir sınıf olan object oluşturur. Java arabiriminden uzandığınızda, Scala yalnızca statik olmayan üyeleri genişletecektir, çünkü statik olanlar bir arkadaşta object olarak kabul edilir. Tamamlayıcı nesne, arayüzle aynı şekilde adlandırılmıştır, böylece DialogInterface.BUTTON_POSITIVE olarak erişebilirsiniz.