了解Java new Class []数组和实现

时间:2017-07-17 00:07:49

标签: java arrays class generics

开始Java

有人可以打破这里发生的事吗

protected Class<?>[] getServletConfigClasses() {
    // TODO Auto-generated method stub
    return new Class[] {
            WebApplicationContextConfig.class
    };
}

我的理解是这是一个方法,它希望它返回一个未知类型的Class对象数组

但回报是什么? 没有构造函数及其实现块的匿名Class对象数组的实例化?

进一步阅读的名称是什么?我似乎无法找到这个主题领域?

5 个答案:

答案 0 :(得分:2)

没有匿名的Class对象。 Class是一个与任何其他类似的java类,但其名称必然会混淆Java初学者。

声明

return new Class[] {
            WebApplicationContextConfig.class
    };

相当于

Class [] result = new Class[1];
result[0] = WebApplicationContextConfig.class;
return result;

WebApplicationContextConfig.class被称为class literalhere是对它们的一些讨论。

答案 1 :(得分:1)

这是一个使用默认值声明的数组。在Java中,它是制作数组的简便方法。

String[] names = {"Arvind","Aarav"}; // initialization

现在重新分配一个全新的阵列。

names = new String[]{"Rajesh","Amit","Mahesh"}; //re-initalization

与方法相同,我们说,返回星期几

public String[] weekdays(){
    String[]days={"Sun","Mon","Tue"};
    return days;
}

OR

public String[] weekdays(){
    return new String[]{"Sun","Mon","Tue"};
}

现在约为Class[],对于类型Class,可能的值为nullSomeClassName.class

Class stringClass = String.class;
Class[] moreClasses = {Long.class, Boolean.class, java.util.Date.class};

答案 2 :(得分:0)

它只是声明一个Class数组并用一个元素初始化它(WebApplicationContextConfig的类定义)

答案 3 :(得分:0)

是通配符类型的数组。有关详情,请参阅http://dev.apollodata.com/react/redux.html

答案 4 :(得分:0)

这是一个数组初始值设定项。当你说

new Something[] { x1, x2, x3 }

它创建了一个Something类的新数组,并将值初始化为花括号中的任何值。新数组的长度是值的数量。

我认为你可能会用一种非常相似的语法来混淆它:

new Something() { class declarations, method overrides, etc. }

这个创建了一个Something的匿名子类,并且它用于创建实现接口的匿名子类。它与数组初始化器语法完全没有关系,即使外观非常接近。