JAVAasist操作字节码

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值