用javassist生成一個(gè)新的類
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比天峨網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式天峨網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋天峨地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
public class Byte {
public static void main(String[] args) throws Exception {
//獲得類池
ClassPool pool=ClassPool.getDefault();
//創(chuàng)建類
CtClass cc=pool.makeClass("cn.sxt.in.Emp");
//創(chuàng)建屬性
CtField f1 = CtField.make("private int empno;", cc);
CtField f2 = CtField.make("private String ename;", cc);
cc.addField(f1);
cc.addField(f2);
//創(chuàng)建方法
CtMethod c1=CtMethod.make("public int getEmpno(){return empno;}", cc);
CtMethod c2=CtMethod.make("public void setEmpno(int empno){this.empno=empno;}", cc);
cc.addMethod(c1);
cc.addMethod(c2);
//添加構(gòu)造器,第一個(gè)參數(shù)為類型的可變數(shù)組,CtClass.獲得類型或pool.get("java.lang.類型")
CtConstructor constructor =new CtConstructor(new CtClass[] {CtClass.intType,pool.get("java.lang.String")},cc);
//構(gòu)造器的方法體
constructor.setBody("{this.empno=empno;this.ename=ename;}");
cc.addConstructor(constructor);
//寫出類
cc.writeFile("d:/myj3"); //自動(dòng)創(chuàng)建文件夾和工作區(qū)間
System.out.println("成功");
}
}