我正在开发一个API(Eclipse IDE - Kepler),JDK 1。7)我需要一个快捷方式,如 @IfNotNullUpdate
考虑以下E。g的。
Model model = new Model();
String field1 = entity.getField1() != null ? entity.getField1() : "";
model.setField1(field1);
这样我就可以简单地把它写成
model.setField1( @IfNotNullUpdate entity.getField1(),"");
我不想有任何NullPointerException。这将是一个很大的帮助,如果它可以像建设者模式。用于例如
model.addField_25(@IfNotNullUpdate entity.getField_37())
.addField_16(@IfNotNullUpdate entity.getField_69());
我试过lombok的@NonNull。它只是确保param不为null,这不是我的要求。
当然,assert()不是一个解决方案。希望我能很好地解释我的要求。
先谢谢你了。
4条答案
按热度按时间eiee3dmh1#
看看
Optional
。使用提供的示例,如果调用的任何方法返回空值,则以下操作可以抛出NPE:为了避免这种情况或过多的
if (x != null)
检查,使用Optional
可以用途:dffbzjpn2#
您将需要为此或您的任何目的构建一个自定义注解。您可以使用
@Target(ElementType.PARAMETER)
创建一个Annotation,并根据需要使用反射来Map它。但这是一个漫长的过程,不需要你太多的时间。相反,只需编写一个方法并调用它。我想不出一个现成的API。就像你说的,Lombok岛不会为你做这些。
k10s72fa3#
你为什么不用一种方法呢?如果需要,可以将其设置为静态的,这样就可以通过className访问它。或者把你需要的helper方法放在oneClass中并扩展它。
3df52oht4#
使用JDK 17更新答案:
我有一个helper方法,比如
我可以使用这个辅助函数作为
对于Nullable流验证,我使用ApacheCommons的CollectionUtils。void run();