java 如何继承泛型

发布于 2022-09-04 08:49:23 字数 298 浏览 25 评论 0

public class TestServiceImpl extends ServiceImpl<TestMapper, Test>
上面这句是直接继承泛型的写法。

我想要的是这样
父类<M, T> extends ServiceImpl<M, T>
public class TestServiceImpl extends 父类<TestMapper, Test>

想问下如何实现呢

其实我想多继承,所以加了个父类,但泛型这部分我就不会写了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

花开浅夏 2022-09-11 08:49:23

补充一下泛型类的继承问题,例如父类声明如下:

public class ServiceImpl<M, T> {
    public void test(M, T) {
        // do something
    }
}

子类继承父类分两种情况:

  1. 保持子类的泛型化:

    public TestServiceImpl<M, T> extends ServiceImpl<M, T> {
        @Override
        public void test(M, T) {
            // do something
        }
    }
  2. 子类不再泛型化

    public TestServiceImpl extends ServiceImpl<String, Integer> {
        @Override
        public void test(String, Integer) {
            // do something
        }
    }

这样解释是不是清楚了很多!

稍尽春風 2022-09-11 08:49:23

子类<M,N> extends 父类<M,N>
这和多继承有啥关系。。。
没什么关系

我只是想继承 ServiceImpl<TestMapper, Test> 还继承 父类

ServiceImpl<TestMapper, Test> 是别人写的,
但我想添加些方法,所以想自己写个父类,不知道怎么写了

过去的过去 2022-09-11 08:49:23

泛型继承的原则

继承泛型类时,必须对父类中的类型参数进行初始化。或者说父类中的泛型参数必须在子类中可以确定具体类型。

例如:有一个泛型类Parent<T>,那么Son类定义时有两种方式初始化父类型的类型参数:

1 用具体类型初始化:

public class Son extends Parent<String>{}

2 用子类中的泛型类型初始化父类:

public class Son<T> extends Parent<T>{}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文