2014-11-02 4 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

당신은 클래스 배열에 하나의 클래스 요소 (오류 메시지에 따라 서로 다른 유형)를 할당하려고 시도하고를 . 대신 배열이

encoderClass = Arrays.copyOf(encoderClasses, encoderClasses.length); 
으로 전체 루프를 대체 할 수있는 편의를 위해 할당

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

NPE을 방지하기 위해 초기화되는 것을 보장 for 루프

encoderClass[i] = encoderClasses[i]; 

각 개별 요소를 할당

1

클래스의 배열이 필요합니다.

Class<?>[] encoderClass; 

하려면 :

당신은에서 다음과 같이 변경한다

Class<?> encoderClass; 
관련 문제