81 Javaassist - operating class file

Because no money to download javaassist kit, official website and open. So do not operate.

Evil CSDN, CSDN has a bag on the whole network.

Take a look at the teacher to do:

package com.bjsxt.test;

import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
javassist.CtConstructor import;
import javassist.CtField;
import javassist.CtMethod;

/**
 * Test use javassist generate a new class
 * @Author high Shangxue Tang Qi www.sxt.cn
 *
 */
public class Demo01 {
	public static void main(String[] args) throws Exception {
		ClassPool pool = ClassPool.getDefault();
		CtClass cc = pool.makeClass("com.bjsxt.bean.Emp");
		
		// Create Properties
		CtField f1 = CtField.make("private int empno;", cc);
		CtField f2 = CtField.make("private String ename;", cc);
		cc.addField(f1);
		cc.addField(f2);
		
		// Create method
		CtMethod m1 = CtMethod.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);
		
		// add a constructor
		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 ( "c: / myjava"); // write the above to the constructed class c: / myjava in
		System.out.println ( "generate the class, success!");
	}
}

  

Guess you like

Origin www.cnblogs.com/Scorpicat/p/12153838.html