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

Java列表反序列化并返回对象时出现不兼容类型错误,java,serialization,compiler-errors,incompatibletypeerror,variable-types,Java,Serialization,Compiler Errors,Incompatibletypeerror,Variable Types,我正在尝试反序列化一组成员列表,我希望在反序列化后分别获取每个成员对象,以便将成员名称与给定字符串匹配 “不兼容的类型librarby.Member无法转换为Member是类型变量的成员。Member扩展了在类SetOfMembers中声明的对象” 上面的错误不断出现,我无法在我的代码中找出问题所在。如果你能向我解释我的代码出了什么问题,那就太好了。我使用了@SuppressWarnings(“未选中”),但这也没有帮助。请帮助。谢谢 Java列表反序列化并返回对象时出现不兼容类型错误 不,没

我正在尝试反序列化一组成员列表,我希望在反序列化后分别获取每个成员对象,以便将成员名称与给定字符串匹配

“不兼容的类型librarby.Member无法转换为Member是类型变量的成员。Member扩展了在类SetOfMembers中声明的对象”

上面的错误不断出现,我无法在我的代码中找出问题所在。如果你能向我解释我的代码出了什么问题,那就太好了。我使用了@SuppressWarnings(“未选中”),但这也没有帮助。请帮助。谢谢

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

不,没有

  • 这是一个编译错误,在编译代码时发生在“反序列化”时不
  • 该错误根本与反序列化无关:它与迭代相关
  • 这是一个错误,而不是警告,因此抑制警告的注释是不相关的
  • 错误消息中清楚地说明了问题。由于您没有提供类的完整源代码,甚至没有提供它所使用的方法,因此无法更可靠地进一步

    不过,我想:

    • 第一个方法是
      SetOfMember
    • SetOfMember
      上参数化
    。。。这将完全解释错误消息。问题在于静态方法
    反序列化成员()
    实际上不是泛型的。修复方法是泛化
    反序列化成员()
    方法:

    public static <Member extends Object> SetOfMember<Member> deserializeMembers() throws ...
    
    publicstaticsetofmember反序列化成员()抛出。。。
    
    我的第一个猜测是

  • 顶部和底部的代码在不同的文件中
  • 在您导入的“top”文件中(很可能是通过IDE建议导入的)一些其他
    成员
    类,例如
    java.lang.reflect.Member
    ,而不是
    库.Member
    ,因此出现此错误
  • 所以要解决这个问题,请检查第一个互动程序中的导入部分

    如果在同一个文件中确实需要两个
    成员
    类,则仍然可以使用完全限定名。我打赌下面的代码无论如何都能工作

    for(library.Member mem : Serialization.deserializeMembers())
    

    请以文本形式包含代码。图像无法搜索,无法复制到文本编辑器,也无法以高质量字体显示,使其可读性降低。1.顶部和底部代码位于同一程序包“library”中2.未导入其他成员类3.给定的方法解决了问题谢谢,我不知道内置的成员类,这是这里的混淆。Re(2),错误消息专门指类型,这意味着泛型类型参数。不是导入的类。