Java中泛型类型的深层副本
发布时间:2020-05-24 01:22:31 所属栏目:Java 来源:互联网
导读:泛型T,E的深拷贝(克隆)如何在 Java中工作?可能吗? E oldItem;E newItem = olditem.clone(); // does not work 答案是不.因为在编译期间无法找出哪个类将替换您的泛型类型E,除非你是 Bind it to a type. Java的克隆方式很浅,对于深度克隆,我们需要提供自己的
|
泛型T,E的深拷贝(克隆)如何在 Java中工作?可能吗? E oldItem; E newItem = olditem.clone(); // does not work 解决方法答案是不.因为在编译期间无法找出哪个类将替换您的泛型类型E,除非你是 Bind it to a type.Java的克隆方式很浅,对于深度克隆,我们需要提供自己的实现 它的解决方法是创建这样的合同 public interface DeepCloneable {
Object deepClone();
}
并且实现者应该拥有自己的深度克隆逻辑 class YourDeepCloneClass implements DeepCloneable {
@Override
public Object deepClone() {
// logic to do deep-clone
return new YourDeepCloneClass();
}
}
它可以像下面那样调用,其中泛型类型E是有界类型 class Test<E extends DeepCloneable> {
public void testDeepClone(E arg) {
E e = (E) arg.deepClone();
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
