リフレクションを使用してScalaクラスをインスタンス化する必要があります。Scalaクラスのコンストラクタのデフォルトの引数のネーミング
デフォルト値を持つ引数を持つクラスのデフォルトコンストラクタを使用したいので、これらのデフォルト値を取得する必要があります。
Scalaのデフォルト値はJVMの単なるメソッドなので、すべてのクラスメソッドを取得し、それらを呼び出すだけでデフォルト値を返す必要があります。
質問:私はデフォルトのargの値を返すメソッドには2つの異なる命名規則があることがわかり - (および「$ lessinit $大きい$のデフォルトの$ X」「が$デフォルトの$ Xを適用する」Xは、特定の引数の位置番号です)。 これらの2つの違いは何ですか? それはScalaのバージョンなどによりますか?
私はそれを持って、ありがとう! –
追加の質問:なぜapply()との2つの異なるデフォルト値メソッドがあるのですか? コンパニオンオブジェクトよりもクラスFoo(bar:Int = 0)を宣言しても、この特定の値を使用する必要があり、2つのメソッドは単なる定型文です。 –
これを特別なケースにすることは避けたいと思います。デフォルト値のメソッド呼び出しを挿入するとき、コンパイラは現在、メソッド名とシグニチャを知る必要があります。 –