我想知道检查的强大方法,如果变量是string或gstring类型的话.我想它与纯Java不同:
def var = someFunc();
if (var instanceof String || var instanceof GString) {
String str = var;
}
Run Code Online (Sandbox Code Playgroud)
我问,因为我不想惊讶于我错过了一个导致难以调试bug的Groovy特定功能.
And*_*erg 32
测试实例应该有效:
assert "fasd" instanceof String
assert "${this}" instanceof GString
Run Code Online (Sandbox Code Playgroud)
Séb*_*nec 15
另一种方法是使用in
关键字:
groovy:000> t = "hello"
===> hello
groovy:000> t in String
===> true
groovy:000> "${t}" in GString
===> true
Run Code Online (Sandbox Code Playgroud)
该in
关键字是成员运算,并得到翻译成isCase
的高级应召:
groovy:000> String.isCase(t)
===> true
groovy:000> GString.isCase("${t}")
===> true
Run Code Online (Sandbox Code Playgroud)