【问题标题】:Entity cannot be cast to java.lang.Object;实体不能转换为 java.lang.Object;
【发布时间】:2015-03-24 20:23:28
【问题描述】:
com.envers.DuaVO@5d8a2977
Exception in thread "main" java.lang.ClassCastException: com.envers.DuaVO cannot be cast to [Ljava.lang.Object;

我在运行代码时遇到了上述异常。我在这里想念什么?任何帮助将不胜感激。

for (Object[] revtypes : duaRevType) {
        System.out.println("  ");
        System.out.println(revtypes[0]);

        //Printing Out DUA Values
        Object[] objArray = (Object[]) revtypes[0];
        DuaVO dduaVo = (DuaVO) objArray[0];

        System.out.println("Dua Number: " + dduaVo.getDuaNumber());
        System.out.println("Dua Short Description: " + dduaVo.getDuaShortDesc());

        System.out.println("This DUA was modified on: " + revtypes[1]);
        System.out.println("Revision Type: " + revtypes[2]);

// 控制台输出

    com.envers.DuaVO@2d4c8822  // I'm trying to print this object
  This DUA was modified on: DefaultRevisionEntity(id = 499,     revisionDate   Mar 16, 2015 11:36:38 AM)
  Revision Type: ADD

【问题讨论】:

    标签: java


    【解决方案1】:

    您正在尝试强制转换不兼容的类型。也许你的意思是

    DuaVO dduaVo = (DuaVO) revtypes[0];
    

    而不是

    Object[] objArray = (Object[]) revtypes[0];
    DuaVO dduaVo = (DuaVO) objArray[0];
    

    【讨论】:

      【解决方案2】:

      您正在将单个对象转换为对象数组 - 这是我们的类转换异常

      Object[] objArray = (Object[]) revtypes[0];

      【讨论】:

      • 您的代码并不是真正的答案 - 这句话是。像这样留下你的答案会让人感到困惑,因为你正在编码错误而不是答案。我建议也对答案进行编码。
      【解决方案3】:
      java.lang.ClassCastException: com.envers.DuaVO cannot be cast to [Ljava.lang.Object
      

      [Ljava.lang.Object 是编译器的obtuse way of printing Object[]。错误消息是说DuaVO 不能转换为Object[]

      我的猜测是您可以将这两个作业简化为:

      DuaVO dduaVo = (DuaVO) revtypes[0];
      

      【讨论】:

        【解决方案4】:

        这是我的看法:

        // for each array of objects (named revtypes) in your class duaRevType
        for (Object[] revtypes : duaRevType) {
                System.out.println("  ");
                // print the first element
                System.out.println(revtypes[0]);
        
                //Printing Out DUA Values
                //->cast the first element of your Object array
                DuaVO dduaVo = (DuaVO) revtypes[0];
                ...
         }
        

        【讨论】:

          猜你喜欢
          • 2020-07-11
          • 1970-01-01
          • 2018-02-09
          • 1970-01-01
          • 1970-01-01
          • 2014-09-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多