📄 cloner.java
字号:
package org.minjey.cjsjk.util;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;public class Cloner { public static Object clone(Object obj) { Object nobj = null; try { Reflector reflector = new Reflector(); Class cla = obj.getClass(); nobj = cla.getConstructor(null).newInstance(null); Field[] fields = cla.getDeclaredFields(); String fname = null; for(Field field : fields) { fname = field.getName(); Object value = reflector.getValue(obj, fname); if(value != null) { reflector.setValue(nobj, fname, new Object[]{value}); } } cla = cla.getSuperclass(); fields = cla.getDeclaredFields(); for(Field field : fields) { fname = field.getName(); Object value = reflector.getValue(obj, fname); if(value != null) { reflector.setValue(nobj, fname, new Object[]{value}); } } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } return nobj; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -