Java泛型问题

第三行代码有警告,请问怎样去除。报错信息我注释在了警告行上面。

class MyHashMap<K, V> {
    public static final int SIZE = 1000;
    //Type safety: The expression of type MyHashMap.Entry[] needs unchecked conversion to conform to MyHashMap.Entry<K,V>[]
    public Entry<K, V>[] tables = new Entry[SIZE];
    
    public void put(K key, V value) {
        int index = key.hashCode() % SIZE;
        while(tables[index] != null) {
            index++;
        }
        tables[index] = new Entry<K, V>();
        tables[index].key = key;
        tables[index].value = value;
        tables[index].hash = key.hashCode();
    }
    
    public V get(K key) {
        int index = key.hashCode() % SIZE;
        while(tables[index] != null && key.hashCode() !=  tables[index].hash
                &&!key.equals(tables[index].key)) {
            index++;
        }
        return tables[index].value;
    }
    
    static class Entry<K, V> {
        int hash;
        K key;
        V value;
    }
}
阅读 2.9k
2 个回答

@suppresswarnings("unchecked")

泛型类型是不能定义数组的。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏