如何查找groovy args是否包含特定字符串

时间:2010-03-12 16:11:39

标签: groovy

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

2 个答案:

答案 0 :(得分:15)

因为argsString[]而不是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()操作(在第一个回复中显示)。