のは、私は1つ?インスタンスのメンバ変数がすべて設定されていないことを知るには?
によって変数1のすべてをチェックせずに(この例では、少なくとも設定されているメンバ変数のいずれかを持っているかどうかを知る方法public class Person
{
private String name;
private int age;
// lot of other member variables
// get set here
}
クラスPersonのJavaでインスタンスを作成したとしましょうたとえば
:
Person person = new Person();
Person person1 = new Person();
person1.setName("John");
は、私はすべての変数を設定していないその人のインスタンスを知っておく必要がありますしかしPERSON1が設定した少なくとも一つの可変
。私はこれを解決するために考えることができる何は
- にすべてのsetメソッドでtrueに変更、または
- が一つの変数を1つずつチェックするメソッドを作成しているブールフラグを作成することです。
しかし、もっとエレガントにこれを行うにはいくつかの方法があります場合、私は疑問に思います。
名前はありません、年齢、または年齢が、名前を持た「人」エンティティーの作成を可能にすることも意味がありますか?ここでの設計は深く欠陥があるが、それはあなたがデザインの助けを探している場合は明らかではないですか、これは単にフィールドへの割り当てに関するご質問以上の機械的にサービスを提供するための一例である場合。 – seh
我々は(、名= 'トムとの選択は、単に名前だけでトムとなどで人を選ぶだろうただ人との選択はDBからすべてを選択します)基準の選択の目的のためにそれを使用します。しかし、ここでは、モジュールがパフォーマンスの問題を引き起こす可能性のあるPersonの空のインスタンスを盲目的に渡していないことを確認したいだけです。 – Rudy
intをクラスに追加し、各setter呼び出しでインクリメントします。多くのコアJavaクラスでは、このアプローチを使用してデータの変更を追跡します。たとえば、Calendarやその他のListの実装です。 nb:40億回の更新で、カウンタがオーバーフローして繰り返します。 –