如何在groovy中声明一个字符串数组。我正在尝试如下操作,但它抛出错误
def String[] osList=new String[]
在行:
处没有数组构造函数调用的表达式我在做什么错了?
答案 0 :(得分:2)
一种简单的方法是
String[] osList = []
assert osList.class.array
assert 'java.lang.String[]' == osList.class.typeName
另一个问题是这个定义是没有用的。这是一个不变的零长度String [],只能在某处用作常量。
答案 1 :(得分:0)
首先:欢迎来到!
您可以使用一些方法来用Groovy创建数组。
但是,让我们从您做错了的事情开始。
def String[] osList = new String[]
您在此处同时使用了def
和String[]
。
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/