クラスに関しては、プライマリ コンストラクターでorキーワードを使用しないdata
ことは禁止されています。つまり、すべてのパラメーターが暗黙的にクラス プロパティに変換されます。ただし、各パラメーターをクラス プロパティに変換したくない場合があります。var
val
したがって、私が見る限り、コンストラクター内でのみアクセス可能で、インスタンスの構築が完了した後に忘れられるパラメーターをプライマリ コンストラクターに渡す可能性はありません。これには正当な理由がありますか?
これを回避する唯一の方法は、クラスを使用しないdata
か、非 var/val プレフィックス変数を許可するセカンダリ コンストラクターを使用することです。ただし、渡す必要のあるパラメーターが多数あるため、2 次コンストラクターはクラスを大幅に拡張します。もちろん、すべてのパラメーターを別のオブジェクトにラップすることもできますが、それは問題を別の場所に移すだけです。
それに対処するために推奨されるアプローチやパターンはありますか?