java - 无法访问类的属性

标签 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;
    }

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

最佳答案

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

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

这将使 getValue() 返回 V(如果您不那样声明,K 和 V 将自动定义为对象)

关于java - 无法访问类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33451385/

相关文章:

java - SerialVersionUID 异常

java - 阻止 RecyclerView 加载所有数据

java - 记录耳机输出 : Android

javascript - 在为 android 设备运行代码时,使用 java 从 Eclipse 下拉列表中的多个选项中选择一个选项

java - 鼠标单击 JLabel 数组 (Java)

java - 如何使用非 Lambda 函数定义 Spark RDD 转换

java - Android Firestore - 第一次打开时缓存数据然后使用快照更新?

java - TextSecure 服务器、Signal Android 应用程序和推送服务器配置

java - 将 double 组从 Python 移至 Java

java - Mysql 和 Hibernate 以及 Lob 列