В Groovy несколько необычно видеть new ArrayList<Integer>()
, поскольку []
работает идентично и менее многословно, поэтому я бы написал это как Set<Integer> weeks = []
.Тогда немного яснее, что происходит - Groovy конвертирует один тип коллекции в другой, с помощью []
, который является действительно удобным способом создания держателя и заполнения начальных данных (если они есть).Поскольку нет синтаксического сахара для коллекций, отличных от []
для List
и [:]
, вам нужны эти преобразования.
def weeks = [] as Set
, вероятно, является наиболее распространенным синтаксисом.Это также более понятно, поскольку []
является просто временным и использует «as» для преобразования, и более явно, чем просто объявление типа на левой стороне.
Вы также можете использовать это для преобразования коллекций в массивы,Вы не можете использовать синтаксис Java для создания массивов, так как он использует фигурные скобки и выглядит как определение Closure, поэтому вместо int[] numbers = new int[] { 1, 2, 3 }
вы должны сделать int[] numbers = [1, 2, 3]
или def numbers = [1, 2, 3] as int[]
.