在Java 8中使用可选参数调用方法
我有以下方法
public static Boolean test(String str, Optional<Boolean> test) {
}
但如果我试着这样称呼它
test("hello")
我得到一个错误,该方法需要两个参数
可选参数不应该允许我在不提供可选参数的情况下调用测试方法吗
你可以在下面搜索框中键入要查询的问题!
我有以下方法
public static Boolean test(String str, Optional<Boolean> test) {
}
但如果我试着这样称呼它
test("hello")
我得到一个错误,该方法需要两个参数
可选参数不应该允许我在不提供可选参数的情况下调用测试方法吗
# 1 楼答案
与
var-args
一样Optional
不是可选参数Optional
是一个容器对象,它可能包含也可能不包含非空值因此,您可以如下方式调用该方法:
或者
请注意
var-args
:这将是有效的:
但是var args不是传递可选参数的正确方法,因为它传递的是0个或多个对象,而不是0或1个对象
方法重载更好:
在其他一些情况下,
@Nullable
约束(JSR-380)可能也很有趣# 2 楼答案
简而言之,不。
Optional
是一个类,在Java中,必须像定义方法一样将精确数量的参数传递给方法唯一的例外是在方法声明中将
...
放在类对象名称之后这使得第二个参数为
either zero or more
# 3 楼答案
试试这个
它会对你有用的