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

标签 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 is a raw type. References to generic type SideBarPresenter.MyView should be parameterized

我应该忽略这个警告还是有更好的方法来做到这一点?

最佳答案

您应该将 MyView 设为静态类。否则,它实际上是 SideBarPresenter 实例的内部类,这可能就是泛型警告出现的地方。默认情况下,内部接口(interface)是静态

关于java - 扩展通用类的原始类型警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35820378/

相关文章:

java - 将字符串从 Web 服务转换为 JSON 数组

java - 从Handler迁移到ScheduledExecutorService进行调度

java - 设置通用类类型

java - 删除集合泛型和冲突的重载

scala - 并非在所有情况下都强制执行类型别名参数边界

java - 无法在android和网络服务器之间进行通信

java - 在带有着色器的 opengl es 中围绕自身旋转矩形

java - 带有 JSpinner 的 CellEditor 时间格式恢复为日期格式

java - 泛型编译错误

任何类型的 Swift 泛型