首页 > 编程知识 正文

JAVAssist

时间:2023-05-06 17:04:06 阅读:224775 作者:3727

package Javassist;import java.io.IOException;import javassist.CannotCompileException;import javassist.ClassPool;import javassist.CtClass;import javassist.CtField;import javassist.CtMember;import javassist.CtMethod;import javassist.CtConstructor;import javassist.CtNewMethod;import javassist.NotFoundException;/** * 测试使用javassist生成一个新的类 * * @author lenovo * */public class TestJavassit {public static void main(String[] args) throws CannotCompileException, NotFoundException, IOException {ClassPool pool = ClassPool.getDefault(); //获得类池CtClass cc = pool.makeClass("Javassist.emp");//创建类CtField f1 = CtField.make("private int empno;", cc);CtField f2 = CtField.make("private String ename;", cc);cc.addField(f1);cc.addField(f2);//创建方法CtMethod m1 = CtNewMethod.make("public int getempno(){return empno;}", cc );CtMethod m2 = CtMethod.make("public void setempno(int empno){this.empno=empno;}", cc);cc.addMethod(m1);cc.addMethod(m2);//添加构造器CtConstructor constructor = new CtConstructor(new CtClass[] {CtClass.intType,pool.get("java.lang.String")}, cc);constructor.setBody("{this.empno = empno; this.ename = ename;}"); cc.addConstructor(constructor);cc.writeFile("E:\JavaSE");//将上面构造好的类写入到E:JavaSEjavassist中System.out.println("生成类成功!");}}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。