首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泛型列表的深层副本

泛型列表的深层副本
EN

Stack Overflow用户
提问于 2013-04-20 20:05:55
回答 1查看 2.3K关注 0票数 2

我想用Java制作一个泛型列表的深度副本。我该如何改进这段代码呢?

代码语言:javascript
复制
public interface Deep{}
public class Class1() implements Deep{
    public Class1(Class1 o){
        //implementation of deep copy
    }
}   

public class Class2() implements Deep{
    public Class2(Class2 o){
        //implementation of deep copy
    }
}

在另一个类中实现List的deepCopy:

代码语言:javascript
复制
public List<Deep> deepCopy(List<Deep> inList){
    if(inList.get(0) instanceof Class1){
        List<Deep> newList=new ArrayList<Class1>();
            for (Deep deep : inList) 
            newList.add(new Class1((Class1) deep));
            }
    else if(inList.get(0) instanceof Class2){
        List<Deep> newList=new ArrayList<Class2>();
            for (Deep deep : inList) 
            newList.add(new Class2((Class2) deep));
                  }
}

这就是调用:

代码语言:javascript
复制
List<Class1> list= new List<Class1>();
//fill list...
List<Class1> aCopy=(List<Class1>) deepCopy(list);
EN

回答 1

Stack Overflow用户

发布于 2013-04-20 20:10:11

您可以使用java库的Cloneable,而不是提供自己的接口Deep。http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html

大多数java类已经实现了这个interface.Like、ArrayList等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16120143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档