Есть такая штука, которая позволяет использовать метод перемещения, когда мы не знаем, какие параметры нужно передать:
Метод void (объект params [] arr)
Но есть некоторые особенности, которые необходимо учитывать:
1. По-умолчанию такой вызов создаёт новый массив (т.е. триггерит GC, что плохо):
void Method1 (объект параметров [] arr) void Method2 (объект [] обр) вар arr = новый int[10]; Метод1(обр); // будет создан массив object[1] и к первому элементу будет применен массив arr Метод2(обр); // будет ошибка компиляции, т.к. объект[] не соотвествует типу int[]
2. Если мы передадим тип массива, то это не будет создавать новый массив:
void Method1 (параметры int [] arr) недействительный метод2 (int [] обр) вар arr = новый int[10]; Метод1(обр); Метод2(обр); // Эти 2 вызова ответственных
3. Любой вызов будет создать новый массив:
Метод void (params int[] arr) Метод(1, 2, 3) Метод(1)
Вывод: избегайте методов с параметрами, особенно если это горячая часть.