📄 beanutil.java
字号:
package net.livebookstore.util;
import java.lang.reflect.Method;
public class BeanUtil {
/**
* Copy all basic properties (boolean, int, String, Date)
* but ignore reference properties.
*
* @param srcObj
* @param destObj
*/
public static void copyProperties(Object srcObj, Object destObj) {
Class dest = destObj.getClass();
Class src = srcObj.getClass();
Method[] ms = dest.getMethods();
for(int i=0; i<ms.length; i++) {
String name = ms[i].getName();
if(name.startsWith("set")) {
Class[] cc = ms[i].getParameterTypes();
if(cc.length==1) {
String type = cc[0].getName(); // parameter type
if(type.equals("java.lang.String")
|| type.equals("int")
|| type.equals("java.lang.Integer")
|| type.equals("long")
|| type.equals("java.lang.Long")
|| type.equals("boolean")
|| type.equals("java.lang.Boolean")
|| type.equals("java.util.Date"))
{
try {
// get property name:
String getMethod = "g" + name.substring(1);
// call get method:
Method getM = src.getMethod(getMethod, new Class[0]);
Object ret = getM.invoke(srcObj, new Object[] {});
if(ret!=null) {
System.out.println("call: " + ms[i].getName() + ": " + getMethod);
ms[i].invoke(destObj, new Object[] {ret});
}
}
catch(Exception e) {
System.out.println("Invoke method " + ms[i].getName() + " failed: " + e.getMessage());
}
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -