2014-11-02 54 views
1

是什么意思,以下错误消息:类型不匹配:不能从类转换<捕获#1-的?>到类<?> []

Type mismatch: cannot convert from Class<capture#1-of ?> to Class<?>[] 

的代码如下:

  Class<?>[] encoderClass; 
      Class<?>[] encoderClasses = new Class<?>[] { 
       Encoder1.class, 
       Encoder2.class, 
       Encoder3.class 
      }; 

      for(int i=0; i<encoderClasses.length; ++i) { 
       encoderClass = encoderClasses[i]; // <------ error is here 
      } 

UPDATE

哦,只是愚蠢的错误,感谢....

回答

2

你试图分配一个类元素的一类阵列(不同类型的按错误消息) 。相反,在for循环

encoderClass[i] = encoderClasses[i]; 

分配每个元素确保数组初始化为避免NPE在分配

Class<?>[] encoderClass = new Class<?>[3]; 

为了简单起见,你可以用

encoderClass = Arrays.copyOf(encoderClasses, encoderClasses.length); 
更换整个循环
1

您正在等待来自Class的数组。

你应该改变从下列:

Class<?>[] encoderClass; 

到:

Class<?> encoderClass; 
相关问题