您的位置:首页 > 汽车 > 时评 > 从哪里找网站_宿州网站制作公司_seo工作_公众号seo排名软件

从哪里找网站_宿州网站制作公司_seo工作_公众号seo排名软件

2025/1/8 5:07:29 来源:https://blog.csdn.net/qq_42192693/article/details/143022491  浏览:    关键词:从哪里找网站_宿州网站制作公司_seo工作_公众号seo排名软件
从哪里找网站_宿州网站制作公司_seo工作_公众号seo排名软件

【BUG】通过@Autowired注入了一个Bean SeqNo,测试的时候需要修改其中的字段。通过传统的反射,无论如何都拿不到信息,关键是一方面可以通过IDEA跳转,一方面debug也确实能看到这个字段。但是每次调用set方法报错:NoSuchFieldException:dcnNo36。

【问题分析】采用传统反射可能是因为 seqNo 是某个代理类或 AOP 代理对象,导致反射时获取的类与实际的实现类不一致。

Class<?> seqNoClass = seqNo.getClass();
Field field = seqNoClass.getDeclaredField("dcnNo36");
field.setAccessible(true);
field.set(seqNo,"123");

【解决方案】ReflectionUtils.findField 是 Spring 提供的工具方法,它会尝试查找指定名称的字段,无论是公共的、私有的还是继承的字段。

Field field = ReflectionUtils.findField(seqNoClass, "dcnNo36");

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com