这次在完成双源读写的过程中碰到一个问题,就是我们需要对两个循环遍历到的Item进行比对主键来进行存在、相等的判定;之前我们是直接通过mybatis的Example类进行判定,
而这次我们采用了反射的方式;
1、我本想着直接使用遍历到的Item.getClass.getDeclaredField(“pk”),(这里的pk是我们获取到的主键名),后来使用打印输出才发现Item.getClass.getDeclaredField(“pk”)得到的是一个完整的类名
2、然后我依然采取反射获取类中方法的方式来获取到getpkMarbasclass()方法,并给其传值,然后执行,最后得到我们的主键值(因为invoke返回的是object类型,所以我们要对其进行类型转换);
3、ncItem.getClass.getMethod(“get”+StringUtils.capitalize(pk))来得到我们的主键,其中StringUtils.capitalize()是令首字母大写的方法;
4、over~
关于getField和getDeclaredField
最新推荐文章于 2023-12-26 00:00:00 发布