Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用通配符在Java中复制泛型集合_Java_Generics - Fatal编程技术网

如何使用通配符在Java中复制泛型集合

如何使用通配符在Java中复制泛型集合,java,generics,Java,Generics,考虑以下java类: import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; public class NumberSet { private Collection<? extends Number> numbers; public NumberSet(Collection<? extends Number> numbers) {

考虑以下java类:

import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;


public class NumberSet {

    private Collection<? extends Number> numbers;

    public NumberSet(Collection<? extends Number> numbers) {
        this.numbers = numbers;
    }

    public NumberSet(NumberSet other) {

        //copy other.numbers to this.numbers
        numbers = new LinkedList<>();
        for (Iterator<? extends Number> it = other.numbers.iterator(); it.hasNext();) {
            numbers.add(it.next()); // Here's Syntax Error near `it.next()`
        }

    }
}
我理解
PECS
的含义,但是我想为这个类实现一个复制构造函数。复制的实例将用作
other
的快照。有什么想法吗?

改变:

 Collection<? extends Number> dst 

CollectionSee还可以在@ChetanKinger上查看助记符PECS-上面的引文来自哪里?你能提供一个链接或参考资料吗?@BrianAgnew为这本书添加了一个链接。@BrianAgnew我真不明白人们怎么能把这个问题标记为“什么是PECS”
的重复?如果有人知道PECS这个词,他们一开始就不会发帖,因为我同意你的观点,所以我把它重新打开了。我认为PECS的问题/答案确实解决了这个问题,但我接受你的观点completely@BrianAgnew谢谢你重新提出这个问题。我正在编辑标题,以便更容易访问。@MostafaNazari请阅读:@ChetanKinger我直到现在才在电脑前。谢谢大家的参与。我知道PECS的含义,但这个问题对我来说仍然是个谜,我会尽快改变问题的主体,以消除所有歧义。
 Collection<? extends Number> dst 
 Collection<? super Number> dst