Java中泛型类型的泛型类型?

con*_*ile 5 java generics

我有一个界面

public interface BWidgetObject<T> {
}
Run Code Online (Sandbox Code Playgroud)

我想使用此接口创建基于此类型的新通用接口:

public interface BDataList<BWidgetObject> {}
Run Code Online (Sandbox Code Playgroud)

前者发出T隐藏类型的警告.以下给出了编译器错误:

public interface BDataList<BWidgetObject<T>> {}
Run Code Online (Sandbox Code Playgroud)

我如何表达BWidgetObject<T>为类型参数BDataList

Kon*_*kov 6

您可以尝试:

public interface BDataList<T extends BWidgetObject<?>> {}
Run Code Online (Sandbox Code Playgroud)

这里我们指定的类型T将是BWidgetObject我们实际上并不关心的类型(这就是我们使用通配符的原因).我们只关心T它,它将是一个子类型BWidgetObject.