我正在处理grails应用程序。我需要一个抽象的java类(org.quartz.Trigger
)添加
Trigger.metaClass.id = { delegate.hashCode() }
在我打电话给班级之前。我想在我的应用程序中为所有触发器启用此功能。这可能吗?或者我每次需要房产时都要重复这个?
答案 0 :(得分:2)
如果在实例化任何metaClass
个对象之前添加到Trigger
,那么所有这些对象都将存在。
但是,在创建它们之后,您需要将其添加到Trigger
的每个实例。
当然,这个方法只能从Groovy中看到,因为Java不知道metaClass
。
一些示例Groovy代码显示了这一点:
// Add to the metaClass of an anstract java class
AbstractList.metaClass.woo = { 'hi there' }
// Create an instance of a class that extends this abstract class
ArrayList list = [ 1, 2, 3 ]
// Call the closure in the metaClass
println list.woo()