KEV:
私は、ジェネリック医薬品に関する割り当てを持っています。-jdk.13.02、Eclipseの。
Map<String, Person> personByFirstName = new ArrayMap<>();
このコード行は私にエラーを与える:「ArrayMapための型引数をinfereすることはできません」
これは、インターフェイス地図のヘッダであります:
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は、割り当てごとに必要とされました。
誰もがここで起こって何ができるかのアイデアを持っているか、それが十分な情報ではないでしょうか?私はクラスのヘッダー/ジェネリックで問題のあることを推測しています。私は、エラーや他のものをグーグルで試みたが、何も見つかっていません。
感謝
アレクセイDolgov:
あなたのコードは私のために罰金を動作します:personbyfirst名の宣言
相続人はあなたが持っている同じarraymap。idは推測だから、どちらか壊れたように、メソッドを実装するか、インポートをめちゃめちゃに。同じコードで新しいプロジェクトを作成してみてください。
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;
}
}