使用できる方法を書きましたClassName.methodName(args)
。
どうすれば使えるようになるのでしょうかmethodName(args)
。
私はサルのようにオブジェクトにパッチを当ててみました:
class Object {
def methodName(args) {
// method definition
}
}
アップデート:
私はdmahapatroが言ったことを試しました。
import static groovy.json.JsonOutput.*
Object.metaClass.outputJson = {
return println(prettyPrint(toJson(it)))
}
outputJson([:])
戻る:
Caught: groovy.lang.MissingMethodException: No signature of method: Object.outputJson() is applicable for argument types: (java.util.LinkedHashMap) values: [[:]]
Possible solutions: outputJson(), outputJson(java.lang.Object)
groovy.lang.MissingMethodException: No signature of method: Object.outputJson() is applicable for argument types: (java.util.LinkedHashMap) values: [[:]]
Possible solutions: outputJson(), outputJson(java.lang.Object)
at Object.run(Object.groovy:7)
[Finished in 2.1s]
編集によって作成された問題は、Object.groovy が Groovy の Object.java と競合したためです。名前を ObjectMeta (または他の競合しない名前に変更すると、機能しました)。