【发布时间】:2017-07-28 13:42:29
【问题描述】:
我是出于好奇而问这个问题,因为我没有在 StackOverflow 上找到有关此特定编译错误的问题:
可变参数参数上不允许使用旧数组表示法
在看到一些包含这样签名的代码时,我遇到了遗留符号:
private void a(int ints[]){/*...*/}
所以我玩了一会儿,直到遇到以下示例中的编译错误。
// this method compiles as expected
private void method1(int[][] ints){ /*...*/ }
// this too
private void method2(int[]... ints){ /*...*/ }
// this does to, but makes use of legacy array notation
private void method3(int ints[][]){ /*...*/ }
// this still does, even when mixing up the notations
private void method4(int[] ints[]){ /*...*/ }
// this however fails to compile
private void method5(int... ints[]){ /*...*/ }
语言设计者决定以这种方式实现它是否有特定原因?不允许使用旧数组表示法的可变参数?
注意:我理解遗留符号
【问题讨论】:
标签: java arrays java-8 variadic-functions