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.

的子类型这一事实