我对下面描述的扩展泛型类的场景感到困惑。我要扩展的类如下:
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/