gpt4 book ai didi

java - Java中使用Optional类时,对象无法转换为字符串

转载 作者:行者123 更新时间:2023-12-01 19:49:31 25 4
gpt4 key购买 nike

我有以下代码尝试使用Optional类:

import java.util.Optional;

// one class needs to have a main() method
public class HelloWorld
{
public String orelesMethod() {
return "hello";
}

public void test() {
String value;
value = Optional.ofNullable(null).orElse(orelesMethod());
System.out.println(value);
}

// arguments are passed using the text field below this editor
public static void main(String[] args)
{
HelloWorld hello = new HelloWorld();

hello.test();
}
}

编译时,它说:

incompatible types: Object cannot be converted to String
value = Optional.ofNullable(null).orElse(orelesMethod());

我找不到问题所在,有人可以帮忙吗?

谢谢!

最佳答案

您已定义value类型为String ,但是Optional.ofNullable(null)返回Optional<Object>因为任何对象类型都可以是 null并且您没有指定实际类型。那么您调用orElseOptional<Object> 类型的对象上因为 TObjectorElse方法返回 Object 类型的对象无法转换为String .

因此调用 ofNullable 时需要指定类型:

value = Optional.<String>ofNullable(null).orElse(orelesMethod());

您可能还想使用orElseGet方法以便不调用 orelesMethod当可选包含值时。

关于java - Java中使用Optional类时,对象无法转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51931835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com