繁体   English   中英

了解Java新的Class []数组和实现

[英]Understanding Java new Class[] array and implementation

入门Java

有人可以分解这里发生的事情吗

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

我的理解是,这是一种期望其返回为未知类型的Class对象的数组的方法

但是,回报是多少? 同时没有构造函数及其实现块的匿名Class对象数组的实例化?

进一步阅读时该名称是什么,我似乎找不到该主题领域?

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

该声明

return new Class[] {
            WebApplicationContextConfig.class
    };

相当于

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

WebApplicationContextConfig.class称为类文字是有关它们的一些讨论。

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

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

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

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

让我们说,方法返回的是星期几

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

要么

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};

它只是声明一个Class数组,并使用一个元素对其进行初始化(WebApplicationContextConfig的Class定义)

它是通配符类型的数组。 为更多

这是一个数组初始化器。 当你说

new Something[] { x1, x2, x3 }

它会创建Something类的新数组,并将值初始化为大括号中告诉您的值。 新数组的长度是值的数量。

我认为您可能会将其与非常相似的语法混淆:

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

这个创建了Something的匿名子类,并且在创建实现接口的匿名子类中使用了很多。 尽管外观非常接近,但它与数组初始化程序的语法完全无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM