我在java接口(Constants
)中定义了一个常量,如下所示:
public final static int DEFAULT_VAL = 2;
这在我的代码中的几个JSP中被使用为:
if (sample.hasModule(Constants.DEFAULT_VAL){
// some code
}
然而,当我最近将常量的类型从int
更改为long
时,我在jsp上得到了一个调用它的noSuchMethodError
,因为jsp中的Constants.DEFAULT_VAL
仍然返回int并且不长。
我还将所有类似hasModule
的方法从以int
为参数更改为long
。
java中对常量有什么特殊处理吗?
谢谢!
因为你只发布了一行,我只能猜测。
JSP文件——作为通知的目的——使用Java执行。Java允许您覆盖方法。
假设特定类中的方法具有方法"hasModule(int numer)"。如果将int值传递给该方法,则没有问题。如果将长值传递给该方法,编译器或JVM将查找名称为"hasModule()"、参数签名为long值的方法。Java没有找到那个方法吗,您的错误消息就是它的结果之一。