STS无法使用java 8解析目标类型

时间:2017-06-07 07:13:55

标签: eclipse java-8

我有以下代码,STS(3.8.4)中的错误说,

  

类型不匹配:无法从Map<String,Object>转换为Map<? extends K,? extends V>

this.attributeMappings = new HashMap<>(attributeMappings!=null?attributeMappings:Collections.EMPTY_MAP);

attributeMappings的两个实例都属于Map<String, Object>类型。

理想情况下,这不应该是Java 8的问题。有人可以帮我解决它而不对源进行任何更改吗?

PS:Eclipse Neon 3也是如此

1 个答案:

答案 0 :(得分:2)

你应该升级,这是一个日食编译器问题(我已尝试搜索它,但没有运气)Eclipse Oxygen让我们说。

Map<String, Object> attributeMappings;


@SuppressWarnings("unchecked")
public void test(Map<String, Object> attributeMappings) {
    this.attributeMappings = new HashMap<>(attributeMappings != null 
                 ? attributeMappings : Collections.EMPTY_MAP);
}

对于javac-8和最近的日食氧气,我编译好了。

另请注意,您可以将Collections.EMPTY_MAP替换为Collections.emptyMap(),它也会有效。