2016-09-02 21 views
5

Ben Scala paket nesnesi için java.lang.Class almak istiyorumScala paket nesne getClass

package object app { 
} 

app/Main.scala:

paket uygulaması

object Main extends App { 
    val _ = app.getClass 
} 

:

Derleme başarısız olur Uygulama herhangi değil, AnyRef uzanması

nesne getClass paketi uygulama Not bir üyesi değildir. Bu tür bir değer sınıfları katılabilir, ama örnekleri karşılaştırmalar tekil tipler ya da referans görünür olamaz.

cevap

2

Sen app dönen sınıf içinde yöntemini tanımlayabilirsiniz:

package object app { 
    def cls = getClass 
} 
2

Teşekkür Nyavro cevabı için.

O paket nesne erişimi kısıtlar görünüyor, built-in üyesi dışından ve aşağıdakileri yapabilirsiniz düz nesneye olarak nesneyi paketlemek için tam erişim elde etmek için:

package object app { 
    val instance = this 
} 

ve kullanımı hoşuna:

app.instance.getClass