比方說,我在Java中創建了一個Person類如何知道一個實例的所有成員變量都沒有設置?
public class Person
{
private String name;
private int age;
// lot of other member variables
// get set here
}
如何知道的實例此實例是否至少有被設置成員變量的一個(沒有一個?
檢查所有的變量之一例如:
Person person = new Person();
Person person1 = new Person();
person1.setName("John");
我需要知道那個人實例尚未設置任何變量但是PERSON1已至少設置一個變量
。我能想到的解決這是
- 創建被更改爲true,每一套方法,或
- 創建檢查一個變量一個方法布爾標誌。
但我不知道是否有更優雅的方法來做到這一點。
允許創建一個有名字但沒有年齡或年齡但沒有名字的「人」實體是否有意義?這裏的設計有很大的缺陷,但是不清楚你是否在尋求設計方面的幫助,或者這只是一個例子,可以用來解釋關於分配到領域的更多機械問題。 – seh
我們將它用於標準選擇目的(只選擇Person將選擇所有的數據庫,選擇名稱='Tom'將只選擇名稱爲tom的人等)。但在這裏,我只想確保模塊不會盲目傳遞可能導致性能問題的Person的空實例。 – Rudy
向您的類中添加一個int,並在每個setter調用中增加它。很多核心Java類使用這種方法來跟蹤數據的變化 - 例如Calendar和misc List實現。 NB:一旦有40億更新,你的櫃檯就會溢出並重演。 –