groovy的动态性
动态语言需要在运行时给类增加方法或属性 根据上章groovy的执行过程可以看到,groovy的执行过程是将类一次加载,且不能修改,那么groovy是如何实现动态的呢? groovy中包含MetaClass接口,该接口扩展了MetaObjectProtocol接口,这就是我们通常所说的MOP协议了,这个MetaClass groovy类生成器生成的字节码内容是不同与java类生成器的,如有一个“foo”语句,groovy生成的字节码是这样: getMetaClass().invokeMethod(this,"foo",EMPTY_PARAMS_ARRAY) eg: def code = '1 + ' eg2: class?Person?{ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |