我对下面描述的场景感到困惑,我正在扩展一个泛型类。我正在扩展的课程如下:
public abstract class PresenterWidget<V extends View> extends HandlerContainerImpl
...
首先,我使用下面的子类进行了此操作(无警告):
public abstract class SideBarPresenter<V extends SideBarPresenter.MyView> extends PresenterWidget<SideBarPresenter.MyView> {
interface MyView extends View {
void doSomething();
}
...
但我想将MyView
转换为抽象类,以便我可以实现一个方法。我觉得它有道理的方法如下。
public abstract class SideBarPresenter<V extends SideBarPresenter.MyView> extends PresenterWidget<SideBarPresenter.MyView> {
abstract class MyView implements View {
void doSomething() {}
}
...
问题是这产生了2个警告,两个都说明:
SideBarPresenter.MyView是原始类型。对泛型类型的引用 应该参数化SideBarPresenter.MyView
我应该忽略此警告还是有更好的方法来执行此操作?
答案 0 :(得分:4)
您应该将MyView设为static
课程。否则它实际上是SideBarPresenter实例的内部类,这可能是你的泛型警告的来源。默认情况下,内部接口是static
。