2012-08-14 16 views
5

Scala'da DSL amaçları için çok kullanışlı olabilecek parametrik yöntemlere sahip olabiliriz; Ayrıca sınıf alanları için otomatik tanımlayan alıcılar için de kullanılır.Scala'da kullanmak için Java'da parametresiz yöntemler bildirebilir misiniz?

Scala ile mümkün olduğunca sorunsuz bir şekilde tümleştirmek istediğim bir Java kitaplığı geliştiriyorum. Scala'nın parametresiz olarak tanıması için boş bir parametre listesiyle bir Java yöntemine açıklama eklemenin bir yolu olup olmadığını merak ediyordum.

class Foo { 
    @ParameterLess 
    public String[] bar() { return someArray; } 
} 

Mesela

için

böylece Scala Yapabileceğim:

val f = new Foo 
f bar (0) 

boş argüman listesine sahip() derleyici çubuğu hakkında şikayet etmeden?

Alternatif olarak, Scala stili alıcıları ve ayarlayıcıyı Java'dan tanımlamanın bir yolu var mı?

Not: tabii ki bu özel örnekte ben Bu muhtemelen sorumu cevaplar

public String bar(int i) { return someArray[i]; } 
+0

Çubuk ile çalıştınız mı (Object ... os)? – Luciano

+1

örneğinizde 'f bar() (0)' öğesini çağırmanız gerekir, böylece derleyici parametreler ve dizi dizini arasında ayrım yapabilir. – aishwarya

+0

Elbette. Scala'ya ipucu vermenin bir yolu olup olmadığını merak ediyorum, 'bar() 'bar' olarak hareket etmeli –

cevap

1

tanımlayarak sorununu geçici biliyoruz:

Scala getters and setters in Java class

cevap olabildiğince olmasıdır Özellikleri içeren bazı hilelere başvurmadıkça. Eh, sanırım bir çeşit açıklama ek olarak @scala.reflect.BeanProperty yararlı bir iyileştirme olacaktır.

İlgili konular