2016-05-08 44 views
2

最近一个我能找到的是这个线程:为什么我必须创建int数组而不是直接将其作为参数传递的原因?

How to pass int array as an argument to a constructor?

答案是明确的,你定义一个int [] tempArray和使用tempArray作为参数。但是,我的问题是为什么不能直接写int数组作为参数。

的代码示例是这样的:

public static void main (String[] args) { 
    NewClass test = new NewClass(); 
    // int[] tempArray = {1, 2, 3}; 
    // test.doSomething(tempArray); 
    test.doSomething({1, 2, 3}); 
} 
+1

你需要'new int [] {1,2,3}' – 3kings

回答

5

可以。但是这样做的语法要求new int[],因为不能使用句法糖可用于声明。类似的,

test.doSomething(new int[] {1, 2, 3}); 
+0

我明白了,谢谢你让我清楚 – Patrick

0

赢了;如果您使用正确的语法并将数组直接传递给方法,则不会出现任何错误。 它应该像

test.doSomething(new int[] {1, 2, 3}); 
3

如果你想这样做,你可以使用可变参数。让你的test.doSomething()方法是这样的:

void doSomething(int... arguments) 
{ 
    // ... 
} 

那么你可以传递整数,而不需要新的语法。编译器会照顾它们。

test.doSomething(1, 2, 3); 
test.doSomething(new int[] { 1, 2, 3 }); 

两者现在都可以使用。在该方法内部,编译器会自动将参数作为一个数组来使用,因此逻辑中也不会改变。

相关问题