public static <T> T clone(T te) {
//如何克隆 te ?
}如何实现 Object.clone 的功能?
//如何克隆 te ?
}如何实现 Object.clone 的功能?
解决方案 »
- JAVA类及对象初始化顺序?
- fatjar 的问题,怎么才能让配置文件留在外面
- 如何用JDialog实现JProgressBar的功能?
- 小女请教各位大侠关于打包问题(java.util.zip)!!
- 如何可以规范的做一个[界面]相对比较复杂的软件??
- 程序编译时没有错,执行时出错,为什么?错误提示如下
- 怎么精华区里的帖子一个都看不了?斑竹在吗?
- 100分求答案,调试通过即结账,thin方式驱动oracle操作blob字段的问题
- 关于datainputStream 中readline()方法返回类型的问题!!
- jdbc-odbc的问题
- 在线急求集合问题
- java 栈内存,堆内存,方法区,常量池,静态去到底有什么关联, 方法区,常量池,静态区又存在哪里啊,栈中,还是另外的一块空间?
public static <T> T clone(Object te) {
//利用发射te.getClass().newInstance();
}
或
//传递时用obj.getClass()
public static <T> T clone(Class te) {
//te.newInstance();
}
这样写 从理论上讲是 取了 te的class 类型然后实例化,这样写 不会影响 传入的 Object te 这个引用指向的内存的对象吗?确认后结贴!
String getName()
以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称
if(obj==null){
return null;
}
Object newObject=null;
Class<?> clazz=obj.getClass();
if(isBaseData(clazz)){
return cloneBasicData(obj);
}else{
try {
if(clazz.isArray()){
Object newArray=Array.newInstance(clazz.getComponentType(),Array.getLength(obj));
for(int i=0;i<Array.getLength(obj);i++){
Object temp_obj=getElement(obj,i);
setElement(newArray,i,cloneObject_recursion(temp_obj));
}
return newArray;
}
newObject=clazz.newInstance();
}catch(InstantiationException e){
e.printStackTrace();
}catch(IllegalAccessException e){
e.printStackTrace();
}
Field[] fields=clazz.getDeclaredFields();
for(int i=0;i<fields.length;i++){
Object property=getProperty(obj,fields[i]);
setProperty(newObject,fields[i],cloneObject_recursion(property));
}
}
return newObject;
}