JAVAasist操作字节码
来源:互联网 发布:淘宝代发论文快吗 编辑:程序博客网 时间:2024/06/15 09:54
Java脚本引擎:
1 Java应用程序可以通过一套固定的接口与各种脚本引擎交互,从而达到在Java平台上调用各种脚本语言的目的
Java脚本API是联通Java平台和脚本语言的桥梁
可以把一些复杂的业务逻辑交给脚本语言处理,这样处理提高了开发效率
ScriptEngineManager manager=newScriptEngineManager();
ScriptEngine engine=manager.getEngineByName("javascript");
//执行javascript代码
engine.eval("var x=1;");
//存入变量
engine.put("y","hello");
//提取变量
engine.get("y");
Java操作字节码可以实现如下功能:
1 动态生成新的类
2 动态改变某个类的结构(添加,删除,修改类的属性和方法)
优势:
1 比反射开销小,性能高
2 JAVAasist 性能高于反射,低于ASM
ClassPool classPool=ClassPool.getDefault();
CtClass ctClass=classPool.makeClass("TestReflect.ClassSource");
//创建属性
CtField ctField=CtField.make("private String sex='man';",ctClass);
ctClass.addField(ctField);
//创建方法
CtMethod ctMethod=CtMethod.make("public String getSex(){return this.sex}",ctClass);
ctClass.addMethod(ctMethod);
1 Java应用程序可以通过一套固定的接口与各种脚本引擎交互,从而达到在Java平台上调用各种脚本语言的目的
Java脚本API是联通Java平台和脚本语言的桥梁
可以把一些复杂的业务逻辑交给脚本语言处理,这样处理提高了开发效率
ScriptEngineManager manager=newScriptEngineManager();
ScriptEngine engine=manager.getEngineByName("javascript");
//执行javascript代码
engine.eval("var x=1;");
//存入变量
engine.put("y","hello");
//提取变量
engine.get("y");
Java操作字节码可以实现如下功能:
1 动态生成新的类
2 动态改变某个类的结构(添加,删除,修改类的属性和方法)
优势:
1 比反射开销小,性能高
2 JAVAasist 性能高于反射,低于ASM
ClassPool classPool=ClassPool.getDefault();
CtClass ctClass=classPool.makeClass("TestReflect.ClassSource");
//创建属性
CtField ctField=CtField.make("private String sex='man';",ctClass);
ctClass.addField(ctField);
//创建方法
CtMethod ctMethod=CtMethod.make("public String getSex(){return this.sex}",ctClass);
ctClass.addMethod(ctMethod);
0 0
- JAVAasist操作字节码
- java字节码操作
- Javassist 字节码操作
- Javassist 字节码操作
- CGLIB --操作字节码
- Java字节码操作
- 字节码操作 javaassist
- 字节码操作(ObjectWeb ASM)
- 字节码操作库Javassist
- 字节码操作(javassist)
- 字节操作()
- 字节操作
- Java开源 字节码操作 -Hello,开源
- JAVA字节码文件操作技巧(1)
- JAVA字节码文件操作技巧(2)
- JAVA字节码文件操作技巧(3)
- JAVA字节码文件操作技巧
- JAVA字节码文件操作技巧
- plsql中文字符不能匹配
- Ambari源码编译
- 约瑟夫问题
- android.mk 介绍
- 作为一个新人,怎样学习嵌入式Linux?
- JAVAasist操作字节码
- css学习笔记20160126定位
- Android JNI
- 设计模式—命令模式
- 2015烦恼
- android的Bitmap和BitmapFactory类的使用
- 移动端微信绑定实现
- 一个炫字都不够??!!!手把手带你打造3D自定义view
- wamp环境配置虚拟主机