跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 求教 Java 如何使用泛型和反射创建更加动态性的代码
未分類
4 9 月 2021

求教 Java 如何使用泛型和反射创建更加动态性的代码

求教 Java 如何使用泛型和反射创建更加动态性的代码

資深大佬 : ccppgo 8

求教 Java 如何使用泛型和反射创建更加动态性的代码 这是 PHP 的项目需要把数据库数据同步到 java 后台, 已经使用队列实现完成。

这里有一个 Equipment 表已经使用反射方便的实现了添加和修改事件。

还有大约十几个表需要实现相同的功能, 他们唯一的不同只是 mybatis plus 的 具体表的 service, 以及具体的表类对象。

我想使用更加动态化的技术实现, 避免写一大堆这样的文件, 但是不知道如何做, 特别是知道了表类对象的 class 以后我可以使用 getClass.newInsetance()去生成新对象, 但是=号左边如何写?如: 什么什么 = Class.forName(className).newInsetance()

以及使用 spring getbean 获取 service 之后, 怎么写 seve 和 updateById 方法, 求 java 大佬赐教,

大佬有話說 (13)

  • 資深大佬 : Kimen

    写一个父类,让所有表的 service 实现类都去继承,然后用这个类去承接你反射出来的对象

  • 資深大佬 : Kimen

    额,看错了,给所有表对象都继承一个 BaseEntity,然后左边就写 BaseEntity,Java 中的多态……

  • 資深大佬 : beidounanxizi

    写 Go 吧,写 JAVA 让你这么痛苦,反射来反射区好玩么?

  • 主 資深大佬 : ccppgo

    @Kimen 下午的时候跟组长一起研究怎么写好(我们 2 个 PHP 程序员)你说的这个已经试过了不行,报 equipment 不能转 entity,我们 equipment 有继承自 entity 的

  • 主 資深大佬 : ccppgo

    @beidounanxizi 写 go 小城市没饭吃

  • 資深大佬 : chendy

    玩不好泛型反射的话,就写点模板文件生成代码吧

  • 資深大佬 : Kimen

    https://cdn.jsdelivr.net/gh/kimentanm/image-store/img/202109022326620.png
    特地去写了个测试类

  • 資深大佬 : mmdsun

    =号左边写父类,接口,或者 object 。然后直接反射再调 save 方法就行。

  • 資深大佬 : SummerSec

    多用反序列化和序列化,自己重新写反序列化和序列化方法。

  • 資深大佬 : Macolor21

    泛型不是这样写?
    public class EquimentService<T> {
    public void save(T obj){
    // …..
    }
    }
    写 BaseEntity 然后子类赋值给父类, 这不是多态吗?我学错了?还是上面的人没学好

  • 主 資深大佬 : ccppgo

    @Kimen
    @mmdsun
    [![hyZLp6.png]( https://z3.ax1x.com/2021/09/03/hyZLp6.png)]( https://imgtu.com/i/hyZLp6)
    [![hyel90.png]( https://z3.ax1x.com/2021/09/03/hyel90.png)]( https://imgtu.com/i/hyel90)
    找到方法了, 好像直接写不行, 得完全反射

  • 資深大佬 : Suaxi

    private BaseMapper getBaseMapper(Class clazz) {
    return (BaseMapper) SpringContextUtil.getBean(clazz.getSimpleName().substring(0, 1).toLowerCase() + clazz.getSimpleName().substring(1) + “Dao”);
    }
    clazz 动态传就可以了

  • 主 資深大佬 : ccppgo

    @Macolor21 看我下面一个回复, EquimentService save 需要的是子类, 如果传 BaseEntity 这里会报错, 如果是需要 BaseEntity 才可以传子类吧

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具