java泛型如何深复制,如何使用通配符在Java中复制泛型集合
时间: 2024-02-27 11:53:10 浏览: 24
Java泛型的深复制可以通过序列化和反序列化实现,具体步骤如下:
1. 将对象序列化为字节数组;
2. 将字节数组反序列化为新的对象。
以下是一个示例代码:
```
public static <T> T deepCopy(T object) throws IOException, ClassNotFoundException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(object);
oos.flush();
oos.close();
bos.close();
byte[] byteData = bos.toByteArray();
ByteArrayInputStream bis = new ByteArrayInputStream(byteData);
ObjectInputStream ois = new ObjectInputStream(bis);
Object copy = ois.readObject();
ois.close();
bis.close();
return (T) copy;
}
```
使用通配符在Java中复制泛型集合可以通过以下方法实现:
```
public static <T> List<T> copyList(List<? extends T> sourceList) {
List<T> targetList = new ArrayList<>();
for (T element : sourceList) {
targetList.add(element);
}
return targetList;
}
```
这段代码可以复制任何类型的List集合,并且返回一个新的List集合。由于使用了通配符,它也支持复制子类型的List集合。