Java 类定义中的有界通配符不起作用?
我正在努力完成以下工作:Java 类定义中的有界通配符不起作用?,java,Java,我正在努力完成以下工作: import java.io.Serializable; public abstract class Thing implements Iterable<? extends Serializable> {} import java.io.Serializable; 公共抽象类实现了Iterablejava.lang.Iterable类定义 Iterable<T> Iterable 因此,它总是希望任何类或接口分配给genric参数T 但是
import java.io.Serializable;
public abstract class Thing implements Iterable<? extends Serializable> {}
import java.io.Serializable;
公共抽象类实现了Iterablejava.lang.Iterable类定义
Iterable<T>
Iterable
因此,它总是希望任何类或接口分配给genric参数T
但是您传递了导致错误的绑定类型参数。我认为您的目的是实现以下内容:
public class FooBar implements Iterable<? extends Serializable> {
public Iterator<? extends Serializable> iterator() {
return new Itr();
}
}
public类FooBar实现了IterableIterable
是一个接口,Serializable
也是一个很好的接口,但同样的错误。为什么需要这个功能?你的用例是什么?Serializable
是一个接口,你不能从中继承。@HunterMcMillen是的,你是对的,实际上我写这篇文章时有些心不在焉。现在我更正了。您上次尝试将泛型类定义为FooBar@HunterMcMillen实际上,接口可以从另一个接口继承。@Eng.Fouad本例中并非如此。这是从接口继承的类定义,在Java中是不可能的。
public class FooBar implements Iterable<? extends Serializable> {
public Iterator<? extends Serializable> iterator() {
return new Itr();
}
}