groovy - 在groovy中,有没有办法检查对象是否具有给定的方法?

标签 groovy

假设我有一个不确定类型的对象 someObj,我想做类似的事情:

def value = someObj.someMethod()

无法保证 'someObj' 实现 someMethod() 方法,如果没有,则返回 null

Groovy 中是否有类似的内容,或者我是否需要将其包装在带有 instanceof 检查的 if 语句中?

最佳答案

使用respondsTo

class Foo {
   String prop
   def bar() { "bar" }
   def bar(String name) { "bar $name" }
}

def f = new Foo()

// Does f have a no-arg bar method
if (f.metaClass.respondsTo(f, "bar")) {
   // do stuff
}
// Does f have a bar method that takes a String param
if (f.metaClass.respondsTo(f, "bar", String)) {
   // do stuff
}

关于groovy - 在groovy中,有没有办法检查对象是否具有给定的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534167/

相关文章:

grails - Grails Feeds插件中的样式表

groovy - 如何从 CliBuilder 获取非选项参数?

hibernate - 在多个关联上使用创建条件

java - Grails 导入 groovy http 构建器

groovy - 在声明性 Jenkins 管道中的环境变量中存储值列表

XmlSlurper。如何忽略@attribute 名称的大小写?

groovy - Jgit 作者最后一次提交

java - 如何在运行时转换包含groovy表达式的纯java字符串?

jenkins - 如何在 Jenkins 控制台输出上写?

groovy - 如何将 ByteArrayOutput 流写入 groovy 中的文件?