当我从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
具有setter方法的noOfLocations
类型为,
private Integer noOfLocations;
public void setNoOfLocations(Integer noOfLocations) {
this.noOfLocations = noOfLocations;
}
您发布的错误消息表明这是一个与构建相关的问题,因为编译器和运行时错误通常不会通过签名来描述方法。
请确保生成是最新的,并且调试器可用的源与正在运行的二进制文件的源匹配。
根据您的构建系统,问题可能由以前的部分构建、文件上的意外时间戳、复制/移动文件、崩溃的IDE、古怪的构建系统等引起。
在Java 1.5.
中引入了自动装箱和拆箱
int getInt(int columnIndex)
throws SQLException
返回CCD_ 4。
因此,如果您使用<1.5版本的java会遇到这个问题。
否则,请提及您的真实性。
我刚刚遇到过这个问题,正如其他海报所描述的,它指的是在运行时找不到的类。对我来说,原因是:
在Eclipse中,我有一个在Tomcat上运行的web应用程序。web应用程序引用了一个单独的jar文件,该文件也在Eclipse中维护。在Eclipse中,一切都很好,因为jar文件位于类路径上。然而,当我尝试使用依赖于jar文件的web应用程序时,我收到了这个错误。Tomcat找不到jar文件库。修复:将相关jar添加到Tomcat的构建路径中。
添加到ᴜʀᴇsʜᴀᴛᴛᴀ说,我想你需要的是
packDO.setNoOfLocations( new Integer( rs.getInt("NO_LOC_PKG") ));
getInt()
返回int
,而setNoOfLocations()
想要java.lang.Integer
。
顺便说一句,它与DB2无关。