我有以下代码,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也是如此
答案 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()
,它也会有效。