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@}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值