我写了一个我可以使用的方法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 (或任何其他不冲突的名称,它就起作用了)。