java - 类型不匹配 : cannot convert from Class<capture#1-of ? > 到 Class<?>[]

标签 java reflection syntax-error

什么意思,下面的错误信息:

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
            }

更新

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

最佳答案

您正在尝试将单个类元素分配给类数组(根据错误消息不同的类型)。而是在 for 循环中分配每个单独的元素

encoderClass[i] = encoderClasses[i];

确保数组被初始化以避免赋值中的NPE

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

为简单起见,您可以将整个循环替换为

encoderClass = Arrays.copyOf(encoderClasses,  encoderClasses.length);

关于java - 类型不匹配 : cannot convert from Class<capture#1-of ? > 到 Class<?>[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26700132/

相关文章:

java - 如何使用来自不同网络的 Java 库(org.apache.hadoop.hbase.client)连接 Hbase?

java - 具有两个参数但不需要同时使用两个参数的 Void 函数

java - 如何获取在java中的方法中声明的变量名称

Java内省(introspection)和反射

php - 在 PHP 中构建动态数组

java - 在 IE7 中通过 javascript 访问小程序方法

javascript - AJAX 请求中的 Null 或空 JSON 对象

c# - 动态抛出 "Ambiguous Match Found"时为 "System.ArgumentException"

java - 这个错误是怎么回事? token "<"上的语法错误,?预期在此 token 之后

Haskell:为什么多行 let 表达式是语法错误?