編集:以前の質問に申し訳ありませんが、の最終キーワードはあなたを混乱させるでしょう、それは適切ではありません。そして私の貧しい人の英語にも申し訳ありません。フィールドがコンストラクタから初期化されていることを確認
-----質問------
は、私は多くの異なったロジック内でそれを初期化する必要があるので、私は、任意のコンストラクタなしモデルクラスを持っていると仮定します。 しかし、私はnotnullキーワードを持っています。
public class Model {
public notnull String name;
public notnull String address;
public notnull int age;
}
そして、私は別の場所にそれを使用するが、すべてのにnotnullフィールドはどのようにすることができ
Model m = new Model();
m.name = "Hello";
m.age = 15;
// syntax error, you should set Model.address
それとも
Model m1 = new Model();
m1.address = "World";
m1.age = 20;
// syntax error, you should set Model.name
コンパイル時にを初期化されたかどうかをチェック維持する必要がありますJavaでそれを達成する? Thx。
私は混乱しています。それらが最終的なものであれば、それらをすべてコンストラクタで初期化する必要があります。 –
'final String a =" A "'として宣言した場合は、各コンストラクタで 'a =" A "'またはインスタンス初期化子ブロック内で '{a =" A "}'として初期化する必要があります。それ以外の場合は、コンパイル時エラーが発生します。あなたが現在行っているやり方では、 'final'を設定する必要はありません。あなたが初期化する必要がないので、' final'が矛盾するでしょう。 – SomeJavaGuy
と "しかし、私は新しいキーワードsay notnull" lolを持っています。 –