调用Groovy Delegate而不是Owner Class

时间:2014-05-30 19:10:18

标签: groovy

我试图创建一个委托给ConfigObject属性的Groovy类,同时它还有一些属于它的属性。出于某种原因,我无法让它正常工作。从@Delegate注释的文档中,看起来应该调用已在所有者类上定义的任何方法,并且委托给delegate属性。这里有什么特别之处,因为ConfigObject类实现了Map接口吗?

class ApplicationProperties {
    @Delegate(excludes = ["clone", "serverName", "serverIpAddress"])
    ConfigObject configData
    String serverName = "foo"
    String serverIpAddress = "bar"
}

调用applicationProperties.serverName不返回foo,它将返回null,因为它委托给configData实例变量。我尝试过具体的排除但没有它们,似乎没有什么区别。如果我设置interfaces = false,那么serverName属性可以正常工作,但似乎没有其他任何东西委托给ConfigData。我有什么想法我做错了吗?

1 个答案:

答案 0 :(得分:1)

如果你引用的applicationProperties.getServerName()应评估为" foo"。