我试图创建一个委托给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。我有什么想法我做错了吗?
答案 0 :(得分:1)
如果你引用的applicationProperties.getServerName()
应评估为" foo"。