Java:An attempt was made to call a method that does not exist. The attempt was made from the following location:
1. 问题描述
一个字段的类型从int变成了bigint,实体类也要同步更新为Long。修改完后只更新了两个实体类,结果运行就报错了。
根据日志来看说“EntityKsGc.getKscc()Ljava/lang/Long;” 这个方法不存在,但这个类确实改成了Long类型,另外从eclipse来看,也只提示修改了两个文件。另一个是EntityRecord.java,需要从EntityKsGc.getKscc()获得值。
2.解决
查看日志,报错行在“ServiceImplRecord.insert(ServiceImplRecord.java:78)”,代码如下:
record.setKSCCBH(gc.getKscc());
用文本编辑器打开ServiceImplRecord.class文件发现了问题,见下图:
class文件中还是传递的integer类型。
- 原因找到了:ServiceImplRecord.class是根据老的EntityKsGc编译之后的结果,当修改EntityKsGc后,需要同步更新ServiceImplRecord.class。
本文来自博客园,作者:huiy_小溪,转载请注明原文链接:https://www.cnblogs.com/huiy/p/18547416