我在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中的常量有什么特殊处理吗?
谢谢!
答案 0 :(得分:0)
因为你只是发布了一条线,我猜错了。
JSP文件 - 由于适用性保留 - 使用Java执行。 Java允许您覆盖方法。
假设特定类中的Method具有方法'hasModule(int numer)'。如果将 int 值传递给该方法,则没有问题。如果将long值传递给方法,则编译器或JVM将查找名称为“hasModule()”的方法,其参数签名为 long 值。 Java没有找到该方法,您的错误消息是它的一个结果。