我正在尝试反序列化 SetOfMembers 列表,并且我想在反序列化后单独获取每个 Member 对象,以便将成员名称与给定的字符串进行匹配。
“不兼容的类型librarby.Member无法转换为Member,其中Member是类型变量。Member扩展了类SetOfMembers中声明的Object”
上述错误不断出现,我无法找出代码中的问题。如果您能向我解释我的代码出了什么问题,那就太好了。我使用了 @SuppressWarnings("unchecked") 但这也没有帮助。请帮忙。谢谢
最佳答案
Java List deserializing and returning an object gives Incompatible types error
不,没有。
- 这是一个编译错误,它发生在编译时、编译代码时。 “反序列化”时不。
- 该错误与反序列化根本无关:它与迭代相关。
- 这是一个错误,而不是警告,因此抑制警告的注释无关紧要。
错误消息中明确指出了问题。由于您没有提供该类的完整源代码,甚至没有提供该类发生的方法,因此不可能进一步可靠。
但是我猜测:
- 第一个方法是
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/