我問這是出於好奇不允許的,因爲我還沒有發現一個問題,這個具體的編譯錯誤,在計算器上:了傳統陣列的符號上的可變參數數量參數
Legacy array notation not allowed on variable-arity parameter
我遇到的傳統符號看到包含簽名像這樣的代碼時:
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[]){ /*...*/ }
是否有一個特定的原因,即語言設計者決定如何實現它?不允許使用遺留數組表示法的可變參數?
NOTE: I understand the legacy notation
檢查它謝謝你,這是我正在尋找的答案:) – Lino
和我同意多個符號*是一個壞主意 – Lino
@Lino這是主要這些天Java的問題。太多的行李以保持向後兼容性。像Kotlin似乎是未來! – Michael