【发布时间】:2015-08-25 13:48:57
【问题描述】:
假设我有一个有 3 个成员的类:
Class A {
private String string1; /** Cannot be null */
private String string2; /** Cannot be null */
private String string3; /** Can be null */
}
我有 2 个接受此类对象作为参数的方法。其中一种方法需要检查是否存在不可为空的字段,而在另一种方法中,这无关紧要:
public int func1(A object); /** Check non nullable fields */
public int func2(A object); /** No check required */
有什么干净的方法吗?使用@NonNull 注释什么的?
我尝试了各种方法,但都没有奏效。所有 NonNull 仅有助于确保 setter 不会将 null 作为参数。或者对象本身不为空。
我似乎找不到对对象进行这种递归空值检查的东西。
如果你们中的任何人能提供帮助,那就太好了。 :)
【问题讨论】:
-
如果您确保
A是不可变的,string1和string2上的@NonNull就足够了。 -
这听起来像是 Spring AOP 的经典案例
标签: java spring null java-8 lombok