Как объявить строковый массив в groovy? - PullRequest
0 голосов
/ 18 марта 2019

Как объявить массив строк в groovy .. Я пытаюсь, как показано ниже, но выдает ошибку

def String[] osList=new String[]

Нет выражения для вызова конструктора массива в строке:

Чтоя делаю не так?

Ответы [ 3 ]

2 голосов
/ 18 марта 2019

Простой способ -

String[] osList = []
assert osList.class.array
assert 'java.lang.String[]' == osList.class.typeName

Другой вопрос, что это определение довольно бесполезно. Это неизменяемая строка нулевой длины [], и она может использоваться где-то только как константа.

0 голосов
/ 18 марта 2019
​def arr = [] as String[]

или

String[] arr = [] as String[]

Это должно сделать это.Вы можете проверить это и поиграть здесь: https://groovyconsole.appspot.com/

0 голосов
/ 18 марта 2019

Первое из: добро пожаловать в SO!

У вас есть несколько вариантов создания массивов в groovy.

Но давайте начнем с того, что вы сделали неправильно.

def String[] osList = new String[]

Вы использовали здесь def и String[].

Def - это анонимный тип, что означает, что groovy определит, какой тип он для вас. String [] является объявленным типом, поэтому Groovy увидит здесь: String[] String[] osList = new String[] что явно не сработает.

Однако для массивов необходим фиксированный размер, который необходимо указать в качестве аргумента для создания массива: Type[] arr = new Type[sizeOfArray] в вашем случае, если вы хотите иметь 10 элементов в массиве, вы должны сделать: String[] osList = new String[10]

если вы не знаете, сколько у вас будет строк, используйте вместо него список. ArrayList сделает для этого в большинстве случаев:

List<String> osList = new ArrayList<>()

теперь вы можете добавлять предметы по телефону:

osList.add("hey!")

или с помощью оператора добавления списка в groovy:

osList << "hey!"

Для дальнейших проблем вы должны обратиться к официальной документации groovy и посмотреть, если вы не можете найти решение самостоятельно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...