Java 无法推断ArraySortedMap的类型参数<&燃气轮机;
我有一个关于泛型的作业-jdk.13.02,EclipseJava 无法推断ArraySortedMap的类型参数<&燃气轮机;,java,eclipse,Java,Eclipse,我有一个关于泛型的作业-jdk.13.02,Eclipse Map personByFirstName=newarraymap() 这行代码给出了错误:“无法推断ArrayMap的类型参数” 这是接口映射的标题: 公共接口映射扩展了Iterable 这是类数组映射: public class ArrayMap <K, V> implements Map<K, V>{ @SuppressWarnings("unchecked") protected Entr
Map personByFirstName=newarraymap()代码>
这行代码给出了错误:“无法推断ArrayMap的类型参数”
这是接口映射的标题:
公共接口映射扩展了Iterable
这是类数组映射:
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(){
}
公共类ArrayMap实现映射{
@抑制警告(“未选中”)
受保护的条目[]数组=(条目[])新条目[16];
受保护的整数=0;
ArrayMap(){
}
……等等。
根据分配,需要@suppresswarnings
是否有人知道这里可能发生了什么,或者信息不够?我只是猜测问题在于类头/泛型。
我试着用谷歌搜索错误和其他东西,但没有发现任何东西
谢谢您的代码对我来说很好:
这是与您相同的arraymap。因此,我猜您要么以错误的方式实现了一个方法,要么将导入搞砸了。请尝试使用相同的代码创建一个新项目
import java.util.Collection;
import java.util.Map;
import java.util.Set;
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(){
}
@Override
public int size() {
return 0;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public boolean containsKey(Object key) {
return false;
}
@Override
public boolean containsValue(Object value) {
return false;
}
@Override
public V get(Object key) {
return null;
}
@Override
public V put(K key, V value) {
return null;
}
@Override
public V remove(Object key) {
return null;
}
@Override
public void putAll(Map<? extends K, ? extends V> m) {
}
@Override
public void clear() {
}
@Override
public Set<K> keySet() {
return null;
}
@Override
public Collection<V> values() {
return null;
}
@Override
public Set<Entry<K, V>> entrySet() {
return null;
}
}
import java.util.Collection;
导入java.util.Map;
导入java.util.Set;
公共类ArrayMap实现映射{
@抑制警告(“未选中”)
受保护的条目[]数组=(条目[])新条目[16];
受保护的整数=0;
ArrayMap(){
}
@凌驾
公共整数大小(){
返回0;
}
@凌驾
公共布尔值为空(){
返回false;
}
@凌驾
公共布尔containsKey(对象键){
返回false;
}
@凌驾
公共布尔包含值(对象值){
返回false;
}
@凌驾
public V get(对象键){
返回null;
}
@凌驾
公共V输入(K键,V值){
返回null;
}
@凌驾
公共V删除(对象密钥){
返回null;
}
@凌驾
public void putAll(Map我自己刚刚实现了你的代码,它对我很有用
然而,我一开始确实看到了这个错误,我有这样一行:
Map<String, Person> personByFirstName = new ArrayMap<>();
Map personByFirstName=newarraymap();
这是因为我正在导入java.util.Map。请确保导入您自己的Map,而不是java.util.Map。您是否实现了自己的Map
接口?我通过1解决了问题)首先使用类构造创建一个新项目,并将ArrayMap和ArraySortedMap的边界更改为嘿,谢谢-创建一个新项目解决了我的主类中提到的错误。我仍然有相同的错误,下面几行关于以某种方式扩展ArrayMap的不同clas ArraySortedMap。请单击我的答案标记为已回答。我猜您导入的类是错误的-请尝试在Eclipse中使用自动导入。