2014-11-02 53 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; 
相關問題