groovy - 如何测试 bean 属性是否可写?

标签 groovy

目前我正在使用以下代码来检查是否可以设置 bean 属性

class Foo {

  def baz = 'baz'

  String getBar() {
    'bar'
  }
}


def f = new Foo()
assert f.hasProperty('baz').setter
assert !f.hasProperty('bar').setter

getSetter()我调用的方法定义于 MetaBeanProperty ,这是 MetaProperty 的运行时类型hasProperty 返回的实例。我确信一定有更好的方法来检查 bean 属性是否可写,有什么建议吗?

最佳答案

我建议使用respondsTo("setX"):

class Foo {

  def baz = 'baz'

  String getBar() {
    'bar'
  }
}

foo = new Foo()

assert !foo.respondsTo('setBar')
assert foo.respondsTo('setBaz')

关于groovy - 如何测试 bean 属性是否可写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396189/

相关文章:

parsing - 使用给定信息解析字符串

java - Groovy 沙箱和 Java : execute Groovy script

intellij-idea - 如何获取依赖项并使其与 IntelliJ 项目一起使用?

grails - 在 Grails 中,如何获取包含请求参数的请求 URI?

android - Lint : "Newer Library Versions Available" when using variables

Jenkins 管道抛出 ProxyException "expected to call Device.<init> but wound up catching Device.getIP"

Javascript,常规调用方法?

grails - 在Grails中创建域关系会返回无法解决的类错误

jenkins - 脚本化 Jenkins 管道 : continue on fail

java - 正则表达式替换为捕获重复组