这是什么意思,以下错误消息:
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
}
更新
哦,只是愚蠢的错误,谢谢......
答案 0 :(得分:2)
您正在尝试将单个类元素分配给类数组(根据错误消息的不同类型)。而是在for
循环中分配每个单独的元素
encoderClass[i] = encoderClasses[i];
确保初始化数组以避免在赋值中使用NPE
Class<?>[] encoderClass = new Class<?>[3];
为简单起见,您可以用
替换整个循环encoderClass = Arrays.copyOf(encoderClasses, encoderClasses.length);
答案 1 :(得分:1)
您期待来自Class的数组。
您应该更改以下内容:
Class<?>[] encoderClass;
要:
Class<?> encoderClass;