変数があるクラスがあります。空でも空でもないようにします。プロパティを設定するロンボクのビルダーを使用する方法はありますか?私は@NonNull
を使用することができますが、空であるかどうかを確認することはできません。明らかにもう1つの選択肢は、これらすべてのチェックを行う私自身のビルダーを書くことです。たとえば:ロンボクのビルダーがヌルで、空でないことを確認します。
@Builder
class Person {
@NonNull
private String firstName;
@NonNull
private String lastName;
}
生成されたコードは次のとおりです:nullの検証はオブジェクトの構築時に行われます。この場合
class Person {
@NonNull
private String firstName;
@NonNull
private String lastName;
@ConstructorProperties({"firstName", "lastName"})
Person(@NonNull String firstName, @NonNull String lastName) {
if(firstName == null) {
throw new NullPointerException("firstName");
} else if(lastName == null) {
throw new NullPointerException("lastName");
} else {
this.firstName = firstName;
this.lastName = lastName;
}
}
public static Person.PersonBuilder builder() {
return new Person.PersonBuilder();
}
public static class PersonBuilder {
private String firstName;
private String lastName;
PersonBuilder() {
}
public Person.PersonBuilder firstName(String firstName) {
this.firstName = firstName;
return this;
}
public Person.PersonBuilder lastName(String lastName) {
this.lastName = lastName;
return this;
}
public Person build() {
return new Person(this.firstName, this.lastName);
}
public String toString() {
return "Person.PersonBuilder(firstName=" + this.firstName + ", lastName=" + this.lastName + ")";
}
}
}
class Person {
@NonNull
private String firstName;
@NonNull
private String lastName;
public static class PersonBuilder() {
// .
// .
// .
public Person build() {
//do checks for empty etc and return object
}
}
}
私の質問には良い答えがありますが、尋ねられた質問には適していません - not_emptyチェックはありません –