将接口interface 修改为class
接口
接口字节码
修改为class类后的字节码
将接口修改成为了,class类
但是这里还有一个坑,是class 没有默认构造,需要添加一个无参构造,不然不能实例化对象
这是生成构造方法后的字节码,当然构造体可以不要
ClassPool classPool = ClassPool.getDefault();
CtClass ctClass = null;
try {
//通过全类名,获取类
ctClass = classPool.getCtClass("aa.bb.cc.CCCCC");
//此操作会将类修改会接口
ctClass.setModifiers(Modifier.PUBLIC);
//3.添加无参的构造函数 无参构造new CtClass[]{}传空,否则传入参数
CtConstructor constructor = new CtConstructor(new CtClass[]{}, ctClass);
//构造体,可以为null 但不能省略
constructor.setBody("String silence = \"hello silence 你的名字\";");
ctClass.addConstructor(constructor);
//加载 写出 class
ctClass.toClass();
ctClass.writeFile("D:\\develop\\peojiect\\springboot_demo\\silence-spring-auto\\src\\main\\java");
} catch (NotFoundException e) {
e.printStackTrace();
}