我有一个变量类,我不希望它为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).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。