class A { String methodFromA() { 'A' } }
class B { String methodFromB() { 'B' } }
A.metaClass.mixin B
def o = new A()
assert o.methodFromA() == 'A'
assert o.methodFromB() == 'B'
assert o instanceof A
assert !(o instanceof B)

println A
println A.toString()


JavaPojo.metaClass.mixin( B)
def javaPojo=new JavaPojo()
println javaPojo
println javaPojo.toString()

结果:

class com.xxx.A
class com.xxx.B
toString from Java
com.xxx.B@5c1a1ff9

为什么line3来自java?为什么line4是一个ints toString(以hashcode结尾)

这是我的环境

➜~groovy--version Groovy版本:2.4.7 JVM:1.7.0_25供应商:Oracle Corporation操作系统:Mac OS X

➜~java-version java version“1.7.0_25”Java(TM)SE运行时环境(版本1.7.0_25-b15)Java HotSpot(TM)64位服务器VM(版本23.25-b01,混合模式)