java – 用于检查非null而非空的Lombok构建器
发布时间:2020-05-28 19:41:52 所属栏目:Java 来源:互联网
导读:我有一个变量类,我不希望它为null或空.有没有办法使用Lombok构建器来设置属性?我可以使用@NonNull,但我无法验证它是否为空.显然,另一种选择是编写我自己的构建器来执行所有这些检查.例如: class Person { @NonNull private String firstName; @NonNull priv
|
我有一个变量类,我不希望它为null或空.有没有办法使用Lombok构建器来设置属性?我可以使用@NonNull,但我无法验证它是否为空.显然,另一种选择是编写我自己的构建器来执行所有这些检查.例如: 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
}
}
}
解决方法Maxim Kirilov的答案是不完整的.它不检查空格/空字符串.我之前遇到过同样的问题,我意识到除了使用来自Lombok的@NonNull和@Builder之外,还使用私有访问修饰符重载构造函数,您可以在其中执行验证.像这样的东西: private Person(final String firstName,final String lastName) {
if(StringUtils.isBlank(firstName)) {
throw new IllegalArgumentException("First name can't be blank/empty/null");
}
if(StringUtils.isBlank(lastName)) {
throw new IllegalArgumentException("Last name can't be blank/empty/null");
}
this.firstName = firstName;
this.lastName = lastName;
}
此外,当String具有空值,空值或空值时,抛出IllegalArgumentException会更有意义(而不是NPE). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
