如何在Groovy中声明字符串数组?

时间:2019-03-18 13:40:45

标签: groovy

如何在groovy中声明一个字符串数组。我正在尝试如下操作,但它抛出错误

def String[] osList=new String[]

在行:

处没有数组构造函数调用的表达式

我在做什么错了?

3 个答案:

答案 0 :(得分:2)

一种简单的方法是

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

另一个问题是这个定义是没有用的。这是一个不变的零长度String [],只能在某处用作常量。

答案 1 :(得分:0)

首先:欢迎来到!

您可以使用一些方法来用Groovy创建数组。

但是,让我们从您做错了的事情开始。

def String[] osList = new String[]

您在此处同时使用了defString[]

Def是一种匿名类型,这意味着groovy会找出适合您的类型。 String []是声明的类型,因此,在这里的常规显示为: 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's official documentation,看看您自己是否找不到解决方案!

答案 2 :(得分:0)

​def arr = [] as String[]

String[] arr = [] as String[]

这应该做到。您可以对其进行测试并在此处进行测试:https://groovyconsole.appspot.com/