一段运行时修改方法的代码......
groovy的meta programming 果然强大..... 好吧 其实是我见识少.....
早就想写一段javascript prototype代码风格的groovy代码了.....
于是折腾了半天就折腾出来这么样的东东.....
class MetaTest{
def propertyMissing(String name){
return Proxy(name);
}
def Proxy(String name){
println "entering proxy"
def clazz = Class.forName(name);
def klazz = clazz.newInstance();
klazz.metaClass.methods.findAll { it.name == "getTest" }.each {
op->
println "entering in method"
klazz.metaClass."${op.name}" << { String a ->
a = "call up"
return a;
}
}
return klazz;
}
public static void main(String[] args){
MetaTest t = new MetaTest();
println (t.MetaFuck.getTest("absc"));
}
}
class MetaFuck {
static public String getTest(String arg){
return arg;
}
}
分享到:
相关推荐
meta-programming入门介绍
meta-programming-in-elixir.epub
需要安装rBench进行测试 gem install rbench 博文链接:https://yapex.iteye.com/blog/220596
系统讲述了Ruby 语言的强大的元编程。并深入到Ruby 语言的内部,详细讲解了其对象的构造,动态方法等
meta标签详解meta标签详解meta标签详解meta标签详解meta标签详解
一、页面自定义meta标签 可以为每个页面单独设置不同的meta标签 以便于SEO 全局的meta标签在nuxt.config.js文件里配置 而单独的meta标签在组件的内部标签内进行配置即可 值得注意的是:hid属性是页面的唯一标识 若想...
html meta tag, used in html programming
Meta分析论文写作,数据提取,这方面的指导很全面
MTK平台进入meta模式的工具源代码,方便进入meta模式的二次开发
诊断性meta分析手把教你做临床Meta分析——诊断试验性Meta-Disc分析.doc
手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤 到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过...
搜索引擎和 HTML Meta 标签(Meta Tags)
Implement powerful abstractions using meta programming in Rust Create quality code formulaically using Rust’s functional design patterns Master Rust’s complex ownership mechanisms particularly for ...
R软件单个率meta分析教程,介绍在 R 软 件 中 实 现 单 个 率 的 Meta 分析方法 。 方法 在 R 软件中加载 Meta 分析程序包 , 录入 Meta 分析数据,用实例数据进行 Meta 分析。 结果 单个率资料的 Meta 分析要求率的...
Maui_META使用说明 图文并茂的哈 不要错过哈 嘿嘿
htmlmeta信息介绍说明meta_intro.pdf
老年痴呆Meta分析,有关老年痴呆的多因素Meta分析;
meta定义页面效果meta定义页面效果meta定义页面效果
meta分析格式,帮助大家了解meta分析的具体要求和格式,同时可以解决一些新手的问题。本资源经权威认证,值得信赖。文章讲述了如何使用meta分析以及meta分析的应用范围。
Meta标签的使用详解,简要介绍各meta的用法,PDF格式