[英]Simplifying Array declaration in Java
考慮以下數組聲明,
int[] num2 = {1, 2, 3, 4, 5};
int[] num3 = new int[]{1, 2, 3, 4, 5};
System.out.println(Arrays.toString(num2));
System.out.println(Arrays.toString(num3));
因此,對於
num3
如果我直接將右側聲明傳遞給一個有效的函數。即
Arrays.toString(new int[]{1,2,3})
但是為什么不能使用num2
方法
如果我調用someFunction({1,2,3,4,4})
它會拋出一個錯誤
表達式的非法開始。
當將一些臨時數組傳遞給函數時,我試圖簡化方法,例如
somefunction(new int[]{1,2,3,4})
是否可以在 java 中簡化它? 任何 Java 8 技巧?
您必須創建一個實例以將其傳遞給該方法,例如:
someFunction(new int[]{});
它在您的情況下不起作用,因為您只傳遞類型int[]
而這是不正確的。
是否可以在 java 中簡化它? 任何 Java 8 技巧?
我想用它作為
somefunc({1,2,3,4})
然后你可以使用可變參數,就像這樣:
ReturnType someFunction(int... a){}
然后你像這樣調用這個方法:
someFunction(1, 2, 3, 4); // valid
someFunction(new int[]{1, 2, 3, 4}); // valid
someFunction(num2); // valid
我不明白什么是目的,但考慮這段代碼將任何 int 數組傳遞給某些功能:
somefucntion(Stream.iterate(1, i -> i + 1).limit(5).mapToInt(Integer::intValue).toArray());
void somefucntion(int[] ints) {
System.out.println(Arrays.toString(ints));
}
Number[] longs1 = new Long[] { 1L, 2L, 3L };
Number[] longs2 = new Long[] { 4L, 5L, 6L };
Number[] concatted = arrayConcat(longs1, longs2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.