我有一个实现特定接口(interface)的通用列表类。
接口(interface)中的列表项也实现了相同的接口(interface)。
public abstract class List<T extends SomeInterface> implements SomeInterface
{
protected LinkedList<T> m_list;
...
}
所以现在我想为这个列表创建一个子类,它保持通用但将项目限制为实现 SearchListItem 接口(interface)的对象:
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 的泛型类类型有额外的限制”?
请告诉我是否可以重新措辞以帮助解释它。
最佳答案
这个有用吗?
public abstract class SearchList<T extends SomeInterface & SearchListItem> extends List<T>
关于java - java中基于父类(super class)和子类对泛型类型的多重限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4085557/