java.util.Optional和java.lang.Class-奇怪的行为
我试着做到以下几点:java.util.Optional和java.lang.Class-奇怪的行为,java,eclipse,class,generics,java-8,Java,Eclipse,Class,Generics,Java 8,我试着做到以下几点: Class<?> clazz = Optional .ofNullable(settingsMap.get(key)) .map(Object::getClass) .orElse(DBObject.class); 我做错什么了吗?或者这是Java8中的一个bug -- 编辑:完整示例: Map settingsMap=newhashmap(); clazz类=可选 .ofNullable(设置映射获取(“”)
Class<?> clazz = Optional
.ofNullable(settingsMap.get(key))
.map(Object::getClass)
.orElse(DBObject.class);
我做错什么了吗?或者这是Java8中的一个bug
--
编辑:完整示例:
Map settingsMap=newhashmap();
clazz类=可选
.ofNullable(设置映射获取(“”)
.map(对象::getClass)
.orElse(字符串类);
此选项(如下)在IntelliJ中运行良好:
Map<String, Class<?>> settingsMap = new HashMap<>();
Class<?> clazz = Optional
.ofNullable(settingsMap.get(""))
.map(Object::getClass)
.orElse(DBObject.class);
Map clazz=可选
.ofNullable(设置映射获取(“”)
.map(对象::getClass)
.orElse(DBObject.class);
您确定不是Eclipse自己的编译器出了故障吗?Hm,似乎是使用javac(不是Eclipse)工作的。您的
设置映射是如何定义的?它只是映射肯定是Eclipse
问题。请参阅我上面的评论,它是映射
Map<String, Object> settingsMap = new HashMap<>();
Class<?> clazz = Optional
.ofNullable(settingsMap.get(""))
.map(Object::getClass)
.orElse(String.class);
Map<String, Class<?>> settingsMap = new HashMap<>();
Class<?> clazz = Optional
.ofNullable(settingsMap.get(""))
.map(Object::getClass)
.orElse(DBObject.class);