Java 如何生成Class<;类型的数组;?扩展某物>;?

Java 如何生成Class<;类型的数组;?扩展某物>;?,java,arrays,class,reflection,Java,Arrays,Class,Reflection,我有以下代码,但无法编译: Class<? extends something>[] classes = new Class<? extends something>[5](); Class我想你应该试着从上一个 Class<? extends something>[] classes = new Class<? extends something>[5]; Class答案与 该规则明确规定: 上面的规则意味着数组创建中的元素类型 表达式不能是

我有以下代码,但无法编译:

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

Class我想你应该试着从上一个

Class<? extends something>[] classes = new Class<? extends something>[5];
Class答案与

该规则明确规定:

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

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

/**
* 
*/
/**
*@作者精英绅士
*
*/
公开课考试{
/**
*@param args
*/
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
类别[5];
上面这一行是编译的


我希望这能有所帮助。

我不确定那些括号是否是故意的,但它们不属于那里(语法错误)。顺便说一句,如果你删除它们,那么
将起作用。可能的重复我清楚地解释了为什么下面的语句不编译。关于SO的许多答案都没有解释为什么它不编译,只是说它不编译。你试过编译它吗?例如试试
Class@dku.rajkumar:哦!我就知道。它尽管“无法创建ClassIt的泛型数组”,但仍然给了我同样的错误。但是,可以根据
声明ClassIt必须是完全无界的,才能使数组工作。
/**
 * 
 */


/**
 * @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];
    }

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