声明迭代器<;?扩展E&;可比<;?超级E>&燃气轮机;java中的迭代器
我可以用Java声明以下内容吗声明迭代器<;?扩展E&;可比<;?超级E>&燃气轮机;java中的迭代器,java,Java,我可以用Java声明以下内容吗 public class NewIterator<E extends Comparable<? super E>> implements Iterator<E> { NewIterator(Iterator<? extends E & Comparable<? super E>> iterator){ ... } 通过将类定义为 class NewIterator
public class NewIterator<E extends Comparable<? super E>> implements Iterator<E> {
NewIterator(Iterator<? extends E & Comparable<? super E>> iterator){
...
}
通过将类定义为
class NewIterator<E extends Comparable<? super E>> implements Iterator<E> {
如果你只是
public NewIterator(Iterator<? extends E> iterator) {
}
如果您在
newiterator中使用positiveEnumber
,编译器会将您击倒……所以我会说“不”。您能否详细说明为什么需要以这种方式进行这种泛化,或者更确切地说,您正在尝试执行什么泛化?只需使用迭代器即可
NewIterator(Iterator<? extends E & Comparable<? super E>> iterator){
...
}
public NewIterator(Iterator<? extends E> iterator) {
}
class IntegerNumber {}
class PositiveNumber extends IntegerNumber implements Comparable<IntegerNumber> {}
class OddPositiveNumber extends PositiveNumber {}
private NewIterator<PositiveNumber> newIterator;
void foo() {
Iterator<PositiveNumber> iterator = createIteratorFrom(
new PositiveNumber(1),
new OddPositiveNumber(7)
);
this.newIterator = new NewIterator(iterator);
}