【发布时间】:2020-04-03 11:51:25
【问题描述】:
我有一个关于泛型的任务。 -jdk.13.02,日食。
Map<String, Person> personByFirstName = new ArrayMap<>();
这行代码给了我错误:“无法推断 ArrayMap 的类型参数”
这是接口映射的标题:
public interface Map<K, V> extends Iterable<Map.Entry<K, V>>
这是 ArrayMap 类:
public class ArrayMap <K, V> implements Map<K, V>{
@SuppressWarnings("unchecked")
protected Entry<K, V>[] array = (Entry<K, V>[]) new Entry[16];
protected int nEntries = 0;
ArrayMap(){
}
... 等等。 根据分配,@suppresswarnings 是必需的。
有没有人知道这里可能发生了什么,或者信息不足?我只是猜测问题出在类头/泛型上。 我尝试用谷歌搜索错误和其他内容,但没有找到任何东西。
谢谢
【问题讨论】:
-
你实现了自己的
Map接口吗? -
我通过以下方式解决了这个问题:1)首先使用类构造创建一个新项目,并将 ArrayMap 和 ArraySortedMap 的边界更改为
<K extends Comparable <? super K>, V>(现在有意义)和 2)复制代码新项目的类主体(步骤 1)对旧项目没有帮助,但我不知道为什么)