【Util】java copy bean 反射

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/inforstack/article/details/50549883
	@SuppressWarnings("unchecked")
	public <S, T> T copySuperBean(Object source,  Class<T> target) throws InstantiationException, IllegalAccessException{
		if (source == null) {
			return null;
		}
		if (target == null) {
			target = (Class<T>) source.getClass();
		}
		T newBean = target.newInstance();
		Class<? extends Object> ss = source.getClass();
		Class<?> ann = 	ss.getSuperclass();
		if (ann.newInstance() instanceof BaseMsg && newBean instanceof WechatMessage) {
			Field[] fields = ann.getDeclaredFields();
	        for (Field field : fields) {  
	            Object value = null;  
	            String name = field.getName();
	            String upperName = name.substring(0, 1).toUpperCase() + name.substring(1);  
	            try {  
	            	String getName = String.format("get%s", upperName);
	            	String setName = String.format("set%s", upperName);
	            	 Method getMethod = source.getClass().getMethod(getName,  new Class[] {});
	        	    Method setMethod = newBean.getClass().getMethod(setName,  new Class[] {field.getType()});
	        	    value = getMethod.invoke(source);
	                if (value == null) {
	                    continue;  
	                }
	                setMethod.invoke(newBean, value);
	            } catch (Exception e) {  
	                e.printStackTrace();  
	            }  
	        }
		}
        return newBean;
	}


相关文章
|
2月前
|
网络协议 算法 Java
|
2月前
|
XML Java 数据库连接
谈谈Java反射:从入门到实践,再到原理
谈谈Java反射:从入门到实践,再到原理
60 0
|
2月前
|
Java 关系型数据库 MySQL
在Java的反射中,Class.forName和ClassLoader的区别
在Java的反射中,Class.forName和ClassLoader的区别
36 3
|
4天前
|
Java
【专栏】Java中的反射机制与应用实例
【4月更文挑战第27天】本文探讨了Java反射机制,该机制允许程序在运行时获取类信息、动态创建对象、调用方法和访问属性。反射通过Class、Constructor、Method和Field类实现。文中列举了反射的应用场景,如动态创建对象、调用方法、访问属性和处理注解,并提供了相关实例代码演示。
|
1天前
|
消息中间件 安全 Java
在Spring Bean中,如何通过Java配置类定义Bean?
【4月更文挑战第30天】在Spring Bean中,如何通过Java配置类定义Bean?
7 1
|
5天前
|
设计模式 Java Spring
来聊聊Java的反射机制(下)
来聊聊Java的反射机制(下)
7 0
|
7天前
|
Java
Java 反射
Java 反射
|
7天前
|
设计模式 Java 索引
由反射引出的Java动态代理与静态代理
由反射引出的Java动态代理与静态代理
12 0
|
7天前
|
存储 Java Shell
深入剖析Java中的反射,由浅入深,层层剥离!
深入剖析Java中的反射,由浅入深,层层剥离!
13 1
|
9天前
|
Java 测试技术 Spring