2011-08-26 15 views

答えて

19

テストメソッドは、メインのコンストラクタで最初に呼び出されます。独自のコードが実行される前に別のコンストラクタが呼び出されないようにする方法はありません。

あなたの場合、どのコンストラクタが何をするかを単純に逆にする必要があります。メインのコンストラクタに文字列パラメータを設定し、補助コンストラクタでnullに設定します。ゲインを追加すると、パラメータリストに直接varを宣言できます。

class Constructor(var s: String) { 
    def this() = this(null) 
    def testMethod() = println(s) 
    testMethod() 
} 

一般に、メインコンストラクタは、より柔軟なものである必要があります。通常は、各フィールドをパラメータから割り当てます。 Scala構文は非常に簡単にそれをやってくれます。必要に応じて、メインのコンストラクタをプライベートにすることができます。

編集:デフォルトのパラメータを持つ、まだ単純

class Constructor(var s: String = null) { 
    def testMethod = println(s) 
    testMethod 
} 
関連する問題