gpt4 book ai didi

java.util.Optional 和 java.lang.Class - 奇怪的行为

转载 作者:搜寻专家 更新时间:2023-11-01 03:04:19 25 4
gpt4 key购买 nike

我尝试执行以下操作:

Class<?> clazz = Optional
.ofNullable(settingsMap.get(key))
.map(Object::getClass)
.orElse(DBObject.class);

Eclipse 在 orElse 上显示错误: "The method orElse(Class<capture#12-of ? extends Object>) in the type Optional<Class<capture#12-of ? extends Object>> is not applicable for the arguments (Class<DBObject>) "。

然后我尝试了以下方法,有效:

Optional<Class<?>> opClazz = Optional
.ofNullable(settingsMap.get(key))
.map(Object::getClass);
Class<?> clazz = opClazz.orElse(DBObject.class);

我做错了什么吗?或者这是 Java8 中的错误?

--

编辑:完整示例:

Map<String, Object> settingsMap = new HashMap<>();

Class<?> clazz = Optional
.ofNullable(settingsMap.get(""))
.map(Object::getClass)
.orElse(String.class);

最佳答案

这个(下图)在 IntelliJ 中运行良好:

    Map<String, Class<?>> settingsMap = new HashMap<>();

Class<?> clazz = Optional
.ofNullable(settingsMap.get(""))
.map(Object::getClass)
.orElse(DBObject.class);

你确定不是Eclipse自己的编译器出错了?

关于java.util.Optional 和 java.lang.Class - 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28013970/

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