2010-12-29 20 views

cevap

4

olmalıdır böylece paket nesneler, bu konuda, normal nesneler gibi davranması gerektiğini hiçbir neden göremiyorum, ancak önerilen domain$Foo$.MODULE$ çalışmıyor. domain.package$Foo$.MODULE$ kullanmanız gerekir.

Ve scala sınıfı göz önüne alındığında vb nesneler, yöntemleri için biraz farklı:

package object domain { 
    object foo 
    def bar = 42 
    val baz = 1.0 
} 

Sen gibi Java foo, bar ve baz erişebilir:

domain.package$foo$.MODULE$ 
domain.package$.MODULE$.bar() 
domain.package$.MODULE$.baz() 

ben iken Bunu anlamaya çalışırken, başımızın dertte olduğunu sanıyordum çünkü Scala, Java'da içe aktarılamayacağınız package adında bir sınıf oluşturuyor. Neyse ki, yalnızca alabileceğiniz package$ tamamlayıcı nesnesine ihtiyacımız var.

0

Scala lib'deki bir nesnede bir nesneye bakarsanız, ör. scala.math.Ordering.Boolean, Java'dan scala.math.Ordering$Boolean$.MODULE$'u kullanarak alabilirsiniz. Ben senin Foo örneği Belki de bu Scala 2.8.1 olarak değişti domain$Foo$.MODULE$

İlgili konular