[英]java.util.Optional with java.lang.Class - strange behaviour
我试着做以下事情:
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自己的编译器失败了吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.