println args
println args.size()
println args.each{arg-> println arg}
println args.class
if (args.contains("Hello"))
println "Found Hello"
运行时发出以下错误:
[hello, somethingelse]
2
hello
somethingelse
[hello, somethingelse]
class [Ljava.lang.String;
Caught: groovy.lang.MissingMethodException: No signature of method: [Ljava.lang.
String;.contains() is applicable for argument types: (java.lang.String) values:
[Hello]
为什么我不能contains
?
答案 0 :(得分:15)
因为args
是String[]
而不是List<String>
您可以使用
if (args.grep('Hello'))
println "Found Hello"
答案 1 :(得分:1)
那是因为args是一个String数组(就像在Java中一样)而不是String,看一下结果:
print args.getClass()
>>class [Ljava.lang.String;
请注意 [L 表示法。
常规字符串将导致:
>>class java.lang.String
Groovy容器没有contains()操作(String确实如此),但Groovy SDK的java.lang.Object具有grep()操作(在第一个回复中显示)。