无法访问类的属性

时间:2015-10-31 12:07:58

标签: java

我有这个方法:

public V get(K key){
        TableEntry wanted = table[Math.abs(key.hashCode() % table.length)];
        while(wanted.getKey() != key && wanted != null) wanted = wanted.next;
        if(wanted.getKey() == key) return wanted.value;
        return null;
    }

返回的want.value在Eclipse中带有红色下划线并且我收到消息:无法将表单对象转换为V.我的问题是:为什么我可以这样做?我想返回值(值是类型V)。这是我的代码: Java code

1 个答案:

答案 0 :(得分:1)

为了在java中使用泛型,您需要使用要使用的泛型类型来声明该类。 如果您希望TableEntry返回其他类型的Object,则应使用泛型类型声明getValue(),在您的情况下,它应该是:

TableEntry<K,V> wanted = table[Math.abs(key.hashCode() % table.length)]; 

这将使getValue()返回V(如果你没有这样声明,K和V将自动定义为Object)