Java List 反序列化并返回对象会出现不兼容类型错误

标签 java serialization compiler-errors incompatibletypeerror variable-types

我正在尝试反序列化 SetOfMembers 列表,并且我想在反序列化后单独获取每个 Member 对象,以便将成员名称与给定的字符串进行匹配。

“不兼容的类型librarby.Member无法转换为Member,其中Member是类型变量。Member扩展了类SetOfMembers中声明的Object”

上述错误不断出现,我无法找出代码中的问题。如果您能向我解释我的代码出了什么问题,那就太好了。我使用了 @SuppressWarnings("unchecked") 但这也没有帮助。请帮忙。谢谢

Error

最佳答案

Java List deserializing and returning an object gives Incompatible types error

不,没有。

  1. 这是一个编译错误,它发生在编译时编译代码时。 “反序列化”时
  2. 该错误与反序列化根本无关:它与迭代相关。
  3. 这是一个错误,而不是警告,因此抑制警告的注释无关紧要。

错误消息中明确指出了问题。由于您没有提供该类的完整源代码,甚至没有提供该类发生的方法,因此不可能进一步可靠。

但是我猜测:

  • 第一个方法是 SetOfMember 的成员
  • SetOfMember参数化为 <Member extends Object> .

...这将完整地解释错误消息。问题在于静态方法 deserializeMembers()实际上并不通用。修复方法是泛化 deserializeMembers()方法:

public static <Member extends Object> SetOfMember<Member> deserializeMembers() throws ...

关于Java List 反序列化并返回对象会出现不兼容类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42705805/

相关文章:

java - hibernate - 防止获取某些属性

PrintService 属性的 Java 序列化

go - 如何将具有 byte slice 数据类型的结构转换为字节?

c# - 对象序列化

objective-c - 进行循环引用导入时出错

java - 找不到符号 HttpClient

c - 错误 : conflicting types for 'indata_1d'

java - apache tomcat 8.0.9 没有突然启动

java - Keylistener 不适用于 JPanel

java - Action 监听器不适用于鼠标点击