首页 > 解决方案 > 获取 java.lang.ClassCastException: [Ljava.lang.Integer; 不能转换为 [I

问题描述

尝试获取方法返回类型 int 数组并获取转换错误 for(String s:oldOfferList) { LOGGER.log(Level.FINE, "Method name"+s);

        Method getNameMethod = old_offer2.getClass().getMethod(s);
        if(getNameMethod.getName().equals("getLevelId"))
        {
             @SuppressWarnings("unchecked")
              int[] oldLevelids =  (int[]) getNameMethod.invoke(old_offer2);
             @SuppressWarnings("unchecked")
              int[] newMethodsval =  (int[]) getNameMethod.invoke(current_offer2);
              if( !Arrays.equals(oldLevelids, newMethodsval)){
              LOGGER.log(Level.FINE," oldLevelids not equals to newMethodsval : "  
                       ); 
              DiffPropValuesEntity dpv=new DiffPropValuesEntity(getNameMethod.getName().toString(),Arrays.toString(oldLevelids).replaceAll("\\s+", ""),Arrays.toString(newMethodsval).replaceAll("\\s+", ""));
                listDiffPropValuesEntity.add(dpv);
              }else {
                  LOGGER.log(Level.FINE," oldLevelids  equals to newMethodsval : "  );

              }
         continue;
        }

标签: reflectionclasscastexception

解决方案


推荐阅读