問題タブ [data-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
null - データを設定できない可能性がある場合、データ クラス コンストラクターの値を null に設定する以外に良い方法はありますか
私は実用的な学習演習としてkotlinでレストクライアントを作成している状況にあり、最近これに反対しました:
問題はこれです.200が返された場合、「a」から「f」までを入力するデータがありますが、代わりに401または他のほとんどのステータスコードを取得した場合、「a」を入力するデータがありませんしたがって、私は上記の解決策を選択しました。ここでは、常に返されるステータス コードを null にしないように強制し、他のすべての値を null にデフォルト設定します。
ユーザーがステータスコードをチェックしないと、このデータが何らかの形で通過する可能性が常にあるため、デフォルトを "" や -1 などに設定するルートをたどりたくありません。
本当に情報がないことを伝えたいのですが、これでうまくいくようですが、もっと良い方法があるのではないかと思いました。
constructor - Kotlin のデータ クラスのプライマリ コンストラクターのローカル パラメーター
クラスに関しては、プライマリ コンストラクターでorキーワードを使用しないdata
ことは禁止されています。つまり、すべてのパラメーターが暗黙的にクラス プロパティに変換されます。ただし、各パラメーターをクラス プロパティに変換したくない場合があります。var
val
したがって、私が見る限り、コンストラクター内でのみアクセス可能で、インスタンスの構築が完了した後に忘れられるパラメーターをプライマリ コンストラクターに渡す可能性はありません。これには正当な理由がありますか?
これを回避する唯一の方法は、クラスを使用しないdata
か、非 var/val プレフィックス変数を許可するセカンダリ コンストラクターを使用することです。ただし、渡す必要のあるパラメーターが多数あるため、2 次コンストラクターはクラスを大幅に拡張します。もちろん、すべてのパラメーターを別のオブジェクトにラップすることもできますが、それは問題を別の場所に移すだけです。
それに対処するために推奨されるアプローチやパターンはありますか?