我正在IDE的主要方法中编写以下内容
public static void main(String... args){
new String(); // no compilation fail
new Object(); // no compilation fail
new int[]{1,2,3,4}; // compilation fails
}
为什么数组不能像其他对象一样匿名?
当我们谈论将它们作为方法参数传递时,我可以看到我可以匿名使用它们,但是我希望即使在这种情况下,它们也可以像其他对象一样工作。
答案 0 :(得分:5)
类的构造函数可以包含任意指令,因此在某些情况下,仅调用类的构造函数即可完成您想做的所有事情。
创建一个新数组不会做任何事情,它不可能执行在某处定义的指令。如果您不打算使用这样创建的数组,从根本上来说就无法达到目的。
答案 1 :(得分:1)
这有效:
public static void main(String... args){
new String(); // no compilation fail
new Object(); // no compilation fail
int[] ia = new int[]{1,2,3,4}; // compilation fails
}
的确,如果您没有对新创建的数组的引用,则无法访问它,因此其创建是徒劳的。另一方面,在不保存引用的情况下创建对象可能是有意义的-检查它是否引发异常。
答案 2 :(得分:0)
public static void somemethod(int a []){}
public static void main(String[] args) {
new String(); // no compilation fail
new Object(); // no compilation fail
somemethod(new int[]{1,2,3,4}); } // compilation will not fails now
您需要
X(array here)
,执行此操作就可以了。
new array[]
不是声明。