关于getField和getDeclaredField

这次在完成双源读写的过程中碰到一个问题,就是我们需要对两个循环遍历到的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~

发布了26 篇原创文章 · 获赞 9 · 访问量 766

猜你喜欢

转载自blog.csdn.net/z19950712/article/details/103754631