Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.util.Optional和java.lang.Class-奇怪的行为_Java_Eclipse_Class_Generics_Java 8 - Fatal编程技术网

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);