java 克隆对象工具类_关于dorado-core源码包中CloneUtils克隆工具类对对象进行克隆复制操作...
一、前言
基于dorado.core.jar開源包中的com.bstek.dorado.util.CloneUtils克隆工具類,對對象進行通過java.lang.reflect.Method映射克隆復制操作。
二、源碼說明package?com.bstek.dorado.util;@b@@b@import?java.lang.reflect.InvocationTargetException;@b@import?java.lang.reflect.Method;@b@@b@public?abstract?class?CloneUtils@b@{@b@??private?static?final?String?CLONE_METHOD?=?"clone";@b@??private?static?final?Class>[]?CLONE_METHOD_ARGTYPES?=?new?Class[0];@b@??private?static?final?Object[]?CLONE_METHOD_ARGS?=?new?Object[0];@b@@b@??public?static?Object?clone(Object?object)@b@????throws?CloneNotSupportedException@b@??{@b@????Object?clonedObject?=?null;@b@????Class?cl?=?object.getClass();@b@????Method?method?=?null;@b@????try?{@b@??????do@b@????????try?{@b@??????????method?=?cl.getDeclaredMethod("clone",?CLONE_METHOD_ARGTYPES);@b@????????}@b@????????catch?(NoSuchMethodException?e)@b@????????{@b@??????????cl?=?cl.getSuperclass();@b@????????}@b@??????while?(method?==?null);@b@@b@??????if?(method?!=?null)?{@b@????????boolean?methodAccessible?=?method.isAccessible();@b@????????if?(!(methodAccessible))?method.setAccessible(true);@b@????????try?{@b@??????????clonedObject?=?method.invoke(object,?CLONE_METHOD_ARGS);@b@????????}@b@????????finally?{@b@??????????if?(!(methodAccessible))?method.setAccessible(false);@b@????????}@b@??????}@b@????}@b@????catch?(SecurityException?e)?{@b@??????e.printStackTrace();@b@????}@b@????catch?(InvocationTargetException?e)?{@b@??????e.getCause().printStackTrace();@b@????}@b@????catch?(IllegalArgumentException?e)?{@b@??????e.printStackTrace();@b@????}@b@????catch?(IllegalAccessException?e)?{@b@??????e.printStackTrace();@b@????}@b@????return?clonedObject;@b@??}@b@}
總結
以上是生活随笔為你收集整理的java 克隆对象工具类_关于dorado-core源码包中CloneUtils克隆工具类对对象进行克隆复制操作...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 方法 函数 区别_Java中的
- 下一篇: 为什么类的下行转换是不安全的_类型转换