我有一個封閉的對象美孚內和瓶蓋內我定義了一個名爲方法「myStaticMethod」我想一勞永逸地解決關閉被稱爲對象富之外。我也碰巧在我的對象Foo中使用了相同名稱的「靜態方法」。當我調用閉包時,我將'解決策略'設置爲DELEGATE_ONLY,以攔截在閉包中定義的myStaticMethod的呼叫。Groovy的methodMissing
我試圖通過missingMethod實現,但該方法從未被攔截。當我做Foo的時候。 myStaticMethod非靜態,該方法被攔截。我不明白爲什麼會發生這種情況,雖然我的解決方案策略設置爲DELEGATE_ONLY。具有Foo.myStaticMethod靜態與否並不重要還是我失去了一些東西
class Foo {
static myclosure = {
myStaticMethod()
}
static def myStaticMethod() {}
}
class FooTest {
def c = Foo.myclosure
c.resolveStrategy = Closure.DELEGATE_ONLY
c.call()
def missingMethod(String name, def args) {
println $name
}
}
+1我不知道有關$ static_methodMissing招,那可能是靜態$ static_methodMissing有用 – 2010-08-28 14:22:38
+1(字符串名稱args)招!這只是我的一天!我能夠用它實現一個很好的配置DSL – 2015-10-19 12:41:07