我有一个界面
public interface BWidgetObject<T> {
}
我希望使用此接口基于此类型创建新的通用接口:
public interface BDataList<BWidgetObject> {}
前者发出隐藏类型T
的警告。以下给出了编译器错误:
public interface BDataList<BWidgetObject<T>> {}
如何将BWidgetObject<T>
表示为BDataList
的类型参数?
答案 0 :(得分:6)
您可以尝试:
public interface BDataList<T extends BWidgetObject<?>> {}
这里我们指定类型T
将是我们实际上并不关心的类型的BWidgetObject
(这就是我们使用通配符的原因)。我们只关心T
以及它将是BWidgetObject
的子类型。
答案 1 :(得分:1)
使用通用绑定:
public interface BDataList<T extends BWidgetObject<?>> {}
或者,如果您需要显式键入小部件,则需要创建另一个子接口:
public interface BWidgetDataList<T> extends BDataList<BWidgetObject<T>> {}