cloner.java
来自「一个可以存储和打印成绩单的系统」· Java 代码 · 共 48 行
JAVA
48 行
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 + =
减小字号Ctrl + -
显示快捷键?