扩展通用类的原始类型警告

时间:2016-03-05 21:53:23

标签: java generics

我对下面描述的场景感到困惑,我正在扩展一个泛型类。我正在扩展的课程如下:

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

我应该忽略此警告还是有更好的方法来执行此操作?

1 个答案:

答案 0 :(得分:4)

您应该将MyView设为static课程。否则它实际上是SideBarPresenter实例的内部类,这可能是你的泛型警告的来源。默认情况下,内部接口是static