CGLIB动态生成一个bean
在没有类的情况下,生成一个bean,之前是不敢想象的,现在cglib做到了
import com.alibaba.fastjson.JSON; import net.sf.cglib.beans.BeanGenerator; import net.sf.cglib.beans.BeanMap; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Bean { /** * 使用CGLIB的BeanGenerator动态的创建了一个Bean对象,使用addProperty方法可以添加一个属性,在添加属性的同时BeanGenerator会自动生成其Getting、Setting方法。 * * @param args * @throws NoSuchMethodException * @throws InvocationTargetException * @throws IllegalAccessException */ public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { BeanGenerator bean=new BeanGenerator(); bean.addProperty("name",String.class); bean.addProperty("age",Integer.class); Object o = bean.create(); Method m1=o.getClass().getMethod("setName",String.class); m1.invoke(o,"www"); Method m2 = o.getClass().getMethod("getName"); System.out.println(JSON.toJSONString(o)); System.out.println(m2.invoke(o)); BeanMap beanMap = BeanMap.create(o); System.out.println(beanMap); } }
输出
{"name":"www"} www {name=www, age=null}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2021-03-12 计算机系统、文化、概论、导论类经典PDF电子书合集
2021-03-12 大数据hadoop,spark,flink等经典电子书PDF下载