コンパニオンクラスを持たないシングルトンオブジェクトMain
を作成すると、そのシングルトンのクラスを取得する方法はありますか? classOf[Main]
は、 "not found:type Main"というエラーを出します。ScalaでMainクラスを取得する
答えて
それはクラスのインスタンスだとして、あなたはこの1つをやってのけるする方法Main.getClass
を使用することができます。
JVMは背景のなかでMain$
という名前のクラスのインスタンスであることを知り、必要に応じてJavaのリフレクションメソッドを使用してアクセスできます。
これまで述べてきたように、とにかくScalaでのリフレクションはほとんど必要ありません。なぜなら、面白いビットの理論の直後でなければ、本当に必要ないはずです。
シングルトンオブジェクト(別名モジュール)は、継承できない "クラス"を持っていません。シングルトンとクラスを反対の概念と考える。
彼らはしかし種類があります:
object Main
def test(a: Main.type): Unit = println("Got: " + a)
test(Main)
「クラス」と「タイプ」の違いは何ですか? –
まあ、私が言ったように、モジュールはあなたがそれから継承することができるクラスではありません。したがって、Mainはクラスよりもむしろ値(インスタンス)です。 Main.typeは値の「シングルトン型」を提供します。 http://blogs.sun.com/sundararajan/entry/mis_understaning_scala_s_singleton –
- 1. Scala - 特殊クラスのクラスを取得
- 2. "main"を取得するjava.lang.UnsupportedOperationException
- 3. Observerパターンを使用してMainクラスのデータを取得する
- 4. Scala Reflection:クラスを取得する方法クラスの文字列
- 5. scala - 文字列からクラスを取得する
- 6. main uiviewのサブビューでクリックイベントを取得
- 7. Scala: 'java'で使用できるmainメソッドを定義する
- 8. クラスはscalaにmain()を持つことができませんか?
- 9. Scalaで引数関数のパッケージとクラス情報を取得するには?
- 10. scalaコマンドは、シングルトンオブジェクト外のクラスの場合はmainをスキップします
- 11. mainメソッドからscalaクラスの関数を呼び出す方法は?
- 12. Pythonクラス "Main"値
- 13. Scalaの汎用タイプのクラス名を取得
- 14. Scala Lift - サーバールート(ディスク)を取得
- 15. Scalaのクラスに渡されたすべての引数を取得する
- 16. マクロを使用してScalaクラスの実現型を取得する
- 17. 取得する方法Scalaのシェルコールスタックトレース
- 18. バーコードの取得 - スレッド「main」の例外java.lang.StackOverflowError
- 19. エラーの取得スレッド "main"の例外java.lang.NoClassDefFoundError:
- 20. ユニットテストからsrc/main/javaクラスローダーを取得する方法
- 21. Mainクラスで@Autowieredを指定したNullPointerException
- 22. playframeworkでjavassistクラスを取得する
- 23. 名前でクラスを取得する
- 24. jqueryでクラスattrを取得する
- 25. クラス名でコンテンツを取得する
- 26. プログラムでC++クラス名を取得する
- 27. Scalaでのみ値を取得する方法
- 28. REPLでScalaのバージョンを取得するには?
- 29. Scalaで型コンストラクタのパラメータを取得する方法は?
- 30. Scalaで - 曜日を取得するには?
同じ名前のクラスのコンパニオンオブジェクトの一部であるメインメソッドを使用してプログラムを開始するには、そのメソッドを使用したい場合は、機能しません。 Scalaは、どのような理由でも、コンパニオンではないオブジェクトに対するmainメソッドの特別な処理しかありません。 – Madoc
@マドック:私はそれが2.8.0で修正されたと思った。いずれにせよ、私はまだコンパニオンのない 'Main'オブジェクトを作成します。通常は 'main'メソッドしかありません。 – Ralph