java cloneable 用途_如何将Cloneable类型用作Java泛型类的参数

我有一个通用类,需要能够克隆参数类型的对象.下面是一个非常简单的例子.编译器声称来自Object类型的clone()不可见.

public class GenericTest

{

T obj;

GenericTest(T t)

{

obj = t;

}

T getClone()

{

// "The method clone() from the type Object is not visible."

return (T) obj.clone();

}

}

我宁愿不让调用者进行克隆,因为还有其他事情必须发生以维护对象的完整性.上面的代码只是问题的一个例子,没有我必须维护的与克隆对象相关的其他数据的噪音.

有没有办法绕过这个或者这是Java设计师考虑合理化其缺点的另一个例子,相当于没有?

解决方法:

Java的一个错误.反思是正确的方法

static Method clone = Object.class.getMethod("clone");

static public

T clone(T obj)

return (T) clone.invoke(obj);

标签:cloneable,java,generics

来源: https://codeday.me/bug/20190726/1543653.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值