Java 中的通用类型的通用类型?
Generic Type of a Generic Type in Java?
我有接口
public interface BWidgetObject<T> {
}
并且我想使用这个接口创建一个基于这个类型的新通用接口:
public interface BDataList<BWidgetObject> {}
前者给出类型T
被隐藏的警告。以下给出编译器错误:
public interface BDataList<BWidgetObject<T>> {}
如何将 BWidgetObject<T>
表示为 BDataList
的类型参数?
使用通用 绑定:
public interface BDataList<T extends BWidgetObject<?>> {}
或者如果您需要显式键入小部件,则需要创建另一个子界面:
public interface BWidgetDataList<T> extends BDataList<BWidgetObject<T>> {}
您可以尝试:
public interface BDataList<T extends BWidgetObject<?>> {}
这里我们指定类型 T
将是一个 BWidgetObject
我们实际上并不关心的类型(这就是我们使用通配符的原因)。我们只关心 T
以及它将成为 BWidgetObject
.
的子类型这一事实
我有接口
public interface BWidgetObject<T> {
}
并且我想使用这个接口创建一个基于这个类型的新通用接口:
public interface BDataList<BWidgetObject> {}
前者给出类型T
被隐藏的警告。以下给出编译器错误:
public interface BDataList<BWidgetObject<T>> {}
如何将 BWidgetObject<T>
表示为 BDataList
的类型参数?
使用通用 绑定:
public interface BDataList<T extends BWidgetObject<?>> {}
或者如果您需要显式键入小部件,则需要创建另一个子界面:
public interface BWidgetDataList<T> extends BDataList<BWidgetObject<T>> {}
您可以尝试:
public interface BDataList<T extends BWidgetObject<?>> {}
这里我们指定类型 T
将是一个 BWidgetObject
我们实际上并不关心的类型(这就是我们使用通配符的原因)。我们只关心 T
以及它将成为 BWidgetObject
.