我正在尝试将静态方法添加到Java中的现有java.util.Random
类。
Random.metaClass.private.static.instance = new Random()
Random.metaClass.public.static.nextInt = { instance.nextInt() }
Random.nextInt() // MissingMethodException
然而,当我这样做时,我得到MissingMethodException
。
有什么问题?
答案 0 :(得分:1)
我觉得这很有趣......如果你编码:
Random.metaClass.static.nextInt = { (new Random()).nextInt() }
Random.nextInt()
你得到StackOverflowError
。但是,如果更改静态方法的名称,则可以使用:
Random.metaClass.static.nextInteger = { (new Random()).nextInt() }
Random.nextInteger()
是的,公共/私人不起作用。