4

当我从 DB2 获取结果并尝试设置此属性noOfLocations时,我收到以下错误。

Method "setNoOfLocations" with signature "(Ljava/lang/Integer;)V" is not applicable on this object

以下代码显示了问题。

我正在使用 rs 来设置值。

packDO.setNoOfLocations(rs.getInt("NO_LOC_PKG"));

rs.getInt("NO_LOC_PKG") is returning 0

NO_LOC_PKG is of datatype Integer in the DB

noOfLocations使用 setter 方法键入的是,

private Integer noOfLocations;

public void setNoOfLocations(Integer noOfLocations) {
        this.noOfLocations = noOfLocations;
    }
4

4 回答 4

9

您发布的错误消息表明这是与构建相关的问题,因为编译器和运行时错误通常不会通过其签名来描述方法。

确保您的构建是最新的,并且调试器可用的源代码与您正在运行的二进制文件的源代码相匹配。

根据您的构建系统,问题可能来自以前的部分构建、文件上的意外时间戳、复制/移动文件、崩溃的 IDE、古怪的构建系统等。

于 2013-08-17T13:54:10.893 回答
2

自动装箱和拆箱在Java 1.5.

 int getInt(int columnIndex)
           throws SQLException  

返回 primitive

因此,如果您使用的是 <1.5 版本的 java,您将遇到此问题。

否则请提及您的版本。

于 2013-08-17T07:43:03.020 回答
1

我刚刚遇到这个,正如其他海报所描述的那样,它指的是在运行时找不到的类。对我来说原因是:

在 Eclipse 中,我有一个在 Tomcat 上运行的 Web 应用程序。Web 应用程序是指一个单独的 jar 文件,该文件也在 Eclipse 中维护。在 Eclipse 中一切都很好,因为 jar 文件位于类路径中。但是,当我尝试使用依赖于 jar 文件的 Web 应用程序时,我收到此错误。Tomcat 找不到 jar 文件库。修复:添加相关 jar 来构建 Tomcat 的路径。

于 2014-03-13T10:07:36.497 回答
0

除了@sᴜʀᴇsʜ ᴀᴛᴛᴀ 所说的,我认为你需要的是

packDO.setNoOfLocations( new Integer( rs.getInt("NO_LOC_PKG") ));

getInt()回报int,并setNoOfLocations()想要java.lang.Integer

顺便说一句,它与 DB2 无关。

于 2013-08-17T12:47:59.943 回答