Java可选参数是否使@NonNull注释冗余?
我正在开发一个新的代码库,我想知道,既然我代码中的所有非可选参数在传递null时都会抛出一个IllegalArgumentException,那么使用@NonNull这样的注释有意义吗?还是期望程序员知道我总是使用Optional来表示此处不传递任何值是有效的操作更好?当然,假设我还说在javadoc等中,可以将null传递给需要可选参数的参数,这样您就可以认为@NonNull仍然有用 就我个人而言,我认为@NonNull会成为冗余,因为如果您调用一个需要可选值的方法,那么您将传递Optional.empty,并且在不存在该值时从不为null。请记住,java约定不允许使用可选的in参数Java可选参数是否使@NonNull注释冗余?,java,Java,我正在开发一个新的代码库,我想知道,既然我代码中的所有非可选参数在传递null时都会抛出一个IllegalArgumentException,那么使用@NonNull这样的注释有意义吗?还是期望程序员知道我总是使用Optional来表示此处不传递任何值是有效的操作更好?当然,假设我还说在javadoc等中,可以将null传递给需要可选参数的参数,这样您就可以认为@NonNull仍然有用 就我个人而言,我认为@NonNull会成为冗余,因为如果您调用一个需要可选值的方法,那么您将传递Optiona
我不同意这个约定,因为可选已经传达了一个含义,即底层方法准备处理没有值的情况。最终这是一个意见和偏好的问题,但我认为如果已经确定您的代码是空的,那么@NonNull是不必要的。Guava采用了这种方法,并使用@Nullable注释来表示偶尔出现的异常。@NonNull可由IDE使用,而不是由您的异常使用。。