Java 8 如何在可选模式中强制转换lambda参数
我有一个lambda表达式,如下所示。我想问的是,对于将lambda参数(x)转换为字符串,是否有任何简单的方法或最佳实践Java 8 如何在可选模式中强制转换lambda参数,java-8,Java 8,我有一个lambda表达式,如下所示。我想问的是,对于将lambda参数(x)转换为字符串,是否有任何简单的方法或最佳实践 Optional.ofNullable(result).isPresent( x-> { String value = (String) x; }); 当我尝试更改输入类型时,如 String value = (String) x; 我正在犯错误 不可逆类型;无法将lambda参数强制转换为java.lang.String您可以执行安全强制转换: Optiona
Optional.ofNullable(result).isPresent( x-> {
String value = (String) x;
});
当我尝试更改输入类型时,如
String value = (String) x;
我正在犯错误
不可逆类型;无法将lambda参数强制转换为java.lang.String您可以执行安全强制转换:
Optional.of(result)
.filter(String.class::isInstance) // verify that Object is a String
.map(String.class::cast) // safely cast to String
.ifPresent( input-> {
// now input is a String
});
isPresent()
不接受任何参数。你的意思是ifPresent()
?结果的类型是什么?如果是字符串
,x
已经是字符串
。如果不是,则不能将其强制转换为字符串
,但可以使用x.toString()
将其转换为字符串
。