常量的更改不会对JSP生效

时间:2012-08-01 11:01:00

标签: java jsp

我在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中的常量有什么特殊处理吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

因为你只是发布了一条线,我猜错了。

JSP文件 - 由于适用性保留 - 使用Java执行。 Java允许您覆盖方法。

假设特定类中的Method具有方法'hasModule(int numer)'。如果将 int 值传递给该方法,则没有问题。如果将long值传递给方法,则编译器或JVM将查找名称为“hasModule()”的方法,其参数签名为 long 值。 Java没有找到该方法,您的错误消息是它的一个结果。