2016-09-02 3 views
5

Ich möchte java.lang.Class für Scala Paket-Objekt erhalten:Scala Paketobjekt getClass

app/package.scala:

package object app { 
} 

app/Main.scala:

Paket app

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

Kompilierung schlägt fehl mit:

Objekt getClass ist kein Mitglied der Paket-App Beachten Sie, dass App erweitert Any, nicht AnyRef. Solche Typen können an Wertklassen teilnehmen, aber Instanzen können nicht in Singletontypen oder in Referenz Vergleichen angezeigt werden.

Antwort

2

Sie können Methode innerhalb App Rückkehr Klasse definieren:

package object app { 
    def cls = getClass 
} 
2

Dank Nyavro für die Antwort.

Es scheint, dass Paketobjekt Zugang zu seinem beschränkten Mitglied eingebauter von außen und uneingeschränkten Zugriff zu erhalten Objekt als in reinem Objekt verpacken wir folgende tun:

package object app { 
    val instance = this 
} 

und verwenden Sie sie mögen:

app.instance.getClass 
Verwandte Themen