Это мое решение:
def intArray = args[2..-1].collect { it as int } as int[]
Диапазон 2..-1
выбирает все элементы от 3-го до последнего. Метод collect
преобразует каждый элемент массива, используя код в замыкании. Последний as int[]
преобразует Список целых чисел, который является результатом метода collect, в массив целых чисел. Поскольку Groovy не работает с примитивными типами, int
всегда будут храниться как java.lang.Integer
с, но вы можете работать с ними, как если бы они были примитивами Java. Преобразование из списка в массив необязательно. Поскольку в Groovy коллекции являются первоклассными гражданами и с ними гораздо проще работать, чем в Java, я бы предпочел работать непосредственно со списками, а не с массивами.
EDIT:
В качестве альтернативы вы можете заменить метод collect
на так называемый оператор распространения *.
, но вместо краткой версии as int
вам придется использовать метод asType(int)
:
def intArray = args[2..-1]*.asType(int) as int[]