java.lang.NoSuchMethodError,构建过程中断了

时间:2015-12-29 08:56:54

标签: java api intellij-idea

我的构建存在问题,这给我带来了巨大的麻烦。

我有一个旧类,我正在使用它来从中获取数据,我使用相同的方法创建了一个新类。当我在我的机器上本地测试时,一切正常,但是当我尝试进行构建时,它会因为它不稳定而破坏,我在日志文件中收到了这个错误:

Caused by: java.lang.NoSuchMethodError: com.mashvisor.bean.Neighborhood.getTraditionalRates()Lcom/mashvisor/database/dao/views/NeighborhoodRentalRates;
at com.mashvisor.database.dao.PropertyDao.retrieve(PropertyDao.java:91)

NeighborhoodRentalRates类是旧类,在我的代码中,我确定我没有使用它,也没有尝试在该行中访问它,这里是我的代码:

Hibernate.initialize(property.getNeighborhood().getTraditionalRates());

以及此处的声明

public TraditionalNeighborhoodRentalRates getTraditionalRates() {
    return traditionalRates;
}

TraditionalNeighborhoodRentalRates是新类,这里唯一的变化是类名。

身体有帮助吗?

1 个答案:

答案 0 :(得分:1)

您的代码仍在调用旧方法,即它正在寻找带有签名的方法:

public NeighborhoodRentalRates getTraditionalRates() { ... }

仅使用相同的名称还不够。要使类具有相同的(方法)接口,必须在所有方法中使用相同的名称,返回类型和参数类型。

因此,您需要查看调用代码并确保新类型无处不在作为返回类型并重新编译调用代码。