如何制作Class <! - 类型的数组?延伸的东西 - >?

时间:2012-02-23 15:47:39

标签: java arrays class reflection

我有以下代码,但不会编译:

Class<? extends something>[] classes = new Class<? extends something>[5]();

为什么这不起作用?有没有办法解决这个问题?我也用Class<?>尝试过,但也没用。

2 个答案:

答案 0 :(得分:4)

答案与Array Creation Expression有关。

该规则明确指出:

  

上述规则意味着数组创建中的元素类型   表达式不能是参数化类型,而不是无界限   通配符

这就是为什么你的上面的代码永远不会编译。实际上,以下编译时错误消息显示(示例):

/**
 * 
 */


/**
 * @author The Elite Gentleman
 *
 */
public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Class<? extends Exception>[] classes = new Class<? extends Exception>[5];
    }

}
  

Test.java:17:通用数组创建

解决方案(如果您遵循上述规则,则有效):

Class<? >[] classes = new Class<?>[5];

以上一行编译。

我希望这会有所帮助。

答案 1 :(得分:-1)

我认为您应该尝试从上一个

中删除()
Class<? extends something>[] classes = new Class<? extends something>[5];