javassist的基本使用

javassist使用

/**
 * 字节码技术
 * 创建User class文件
 */
public class CreateUserClass
{
    public static void main(String[] args) throws Exception
    {
        ClassPool pool = ClassPool.getDefault ();

        //创建class文件  指定包名
        CtClass userClass = pool.makeClass ("cn.edu.hbpu.javassit.User");

        //创建成员变量  id
        CtField idField = CtField.make ("private Integer id;",userClass);
        //创建成员变量  name
        CtField nameField = CtField.make ("private String name;",userClass);

        //为userClass添加属性
        userClass.addField (idField);
        userClass.addField (nameField);

        /**
         * 创建方法
         */
        CtMethod getMethod = CtMethod.make ("public Integer getId() {return id;}", userClass);
        CtMethod setMethod =CtMethod.make ("public void setId(Integer id) { this.id = id; }",userClass);

        //添加方法
        userClass.addMethod (getMethod);
        userClass.addMethod (setMethod);

        // 添加构造器
        CtConstructor ctConstructor = new CtConstructor(new CtClass[] { CtClass.intType, pool.get("java.lang.String") },
                userClass);
        // 为构造器 设置Body
        ctConstructor.setBody("	{this.id = id;this.name = name;}");
        userClass.addConstructor(ctConstructor);

        //写入到
        userClass.writeFile("E:/upload");
    }
}

效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值