我有一个实现特定接口的通用列表类。
界面中的列表项也实现了相同的界面。
public abstract class List<T extends SomeInterface> implements SomeInterface
{
protected LinkedList<T> m_list;
...
}
所以现在我想让这个列表的子类保持通用,但将项目限制为实现SearchListItem接口的对象:
public interface SearchListItem
{
public String getName();
}
到目前为止,这是我对SearchList类的所有内容:
public abstract class SearchList<T extends SearchListItem> extends List<T>
{
public T get(String name)
{
...
}
...
}
但当然这引起了对班级定义的抱怨:
Bound mismatch: The type T is not a valid substitute for the bounded parameter <T extends SomeInterface> of the type List<T>
那么我需要在类声明中说“SearchList扩展List类,并对包含SomeInterface(在基类中)和SearchListItem的泛型类类型有其他限制”?
请告诉我是否可以改写此内容以帮助解释它。
答案 0 :(得分:6)
这有用吗?
public abstract class SearchList<T extends SomeInterface & SearchListItem> extends List<T>