[英]Type mismatch: cannot convert from Class<capture#1-of ?> to Class<?>[]
What does it mean, the following error message: 这是什么意思,以下错误消息:
Type mismatch: cannot convert from Class<capture#1-of ?> to Class<?>[]
The code is following: 代码如下:
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 UPDATE
Oh, just silly mistake, thanks.... 哦,只是愚蠢的错误,谢谢....
You're attempting to assign a single class element to a class array (different types as per the error message). 您正在尝试将单个类元素分配给类数组(根据错误消息的不同类型)。 Instead assign each individual element in the for
loop 而是在for
循环中分配每个单独的元素
encoderClass[i] = encoderClasses[i];
ensuring that the array is initialized to avoid NPE
in the assignment 确保初始化数组以避免赋值中的NPE
Class<?>[] encoderClass = new Class<?>[3];
For simplicity you could replace the entire loop with 为简单起见,您可以用。替换整个循环
encoderClass = Arrays.copyOf(encoderClasses, encoderClasses.length);
You are expecting array from Class. 你期待Class的数组。
You should change the following from: 您应该更改以下内容:
Class<?>[] encoderClass;
To: 至:
Class<?> encoderClass;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.