2016-09-02 13 views
5

私は、Scalaのパッケージオブジェクトのjava.lang.Classを取得したい:ScalaのパッケージオブジェクトのgetClass

アプリ/ package.scala:

package object app { 
} 

アプリ/ Main.scala:

パッケージアプリ

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

コンパイルに失敗します。

object getClassはpackage appのメンバーではありません。appは のいずれかで、AnyRefではありません。そのような型は値クラスに参加できますが、 インスタンスはシングルトン型または参照 の比較では使用できません。

答えて

2

あなたはアプリを返すクラス内のメソッドを定義することができます

package object app { 
    def cls = getClass 
} 
2

感謝をNyavroに答えを。

そのパッケージのオブジェクトは、その外側からメンバーを内蔵しており、我々は次の操作を行うことができますプレーンなオブジェクトのようなオブジェクトをパッケージ化するのフルアクセスを得るためにへのアクセスを制限するようだ:

package object app { 
    val instance = this 
} 

と同じようにそれを使用します。

app.instance.getClass 
関連する問題