您对此方案的用法有何建议?
避免。避免。避免。
虽然
Optional是一个 很好的替代 来
null,在Java中,你会总是与它是一个结束了 糟糕的除了
代替。正如Seelenvirtuose所写,在三种可能性中,您只需要两种。就像JB
Nizet所写的那样,最好将它用作返回值,以使调用者想起所需的检查。作为方法参数,它没有任何帮助。
理想情况下,可选参数应该像
getBooks(String catalogId, String categoryId = null)
这不是有效的Java。AFAIK C ++编译器将其转换为两种方法
getBooks(String catalogId, String categoryId)getBooks(String catalogId)
您必须自己用Java编写。省略参数是明确表明它是可选的最清晰的方法。将可选参数标记
@Nullable为几乎是一样的。使用可空性检查工具可以帮助您避免使用NPE(这是的主要参数
Optional)。
重要的是一致性。您的班级之间的一致性就在您手中。与JDK的一致性意味着
null至少在可预见的将来(
Optional可能有一天JDK 8
会使用)使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)