我想檢查強制性欄位(姓名、年齡和郵編)是否包含數值或不為空。
典型的方法是
。 Person person = new Person() 。
person.setName("Cookie")。
person.setAge(20)。
//validation
if(person.getAge() != null && person.getName() != null){
return true。
}
在我的原始類中,我有超過20個欄位需要檢查,因此我想知道是否有一個更優雅的方法來做這件事?
簡單的POJO類例子:
public class Person {
字串名稱。
int age;
字串地址。
int postcode;
public Person() {
}
public String getName() {
return this.name。
}
public void setName(String value) {
this.name = value。
}
//...等setter和getter。
}
uj5u.com熱心網友回復:
你可以你的javax.validation.Certificate。你可以用NotNull注解來注解你的物件。然后你可以用驗證器來檢查它。
請看這個例子。
uj5u.com熱心網友回復:
鑒于你所有的getters都回傳一個參考型別(沒有基元),并且你只需要檢查結果是否為null或不為null,你可以這樣嘗試:
...
List<Supplier<Object>> m_Getters = new ArrayList<>()。
...
public Person()
{
m_Getters.add( this::getName ) 。
m_Getters.add( this::getAge ); //getAge()必須回傳Integer,而不是int!!/span>。
m_Getters.add( this::getAddress ) 。
...
}
...
public final boolean validate()
{
return m_Getters.stream().allMatch( s -> s.get() != null ) 。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/333316.html
標籤:
