0

我在 java 接口 () 中定义了一个常量Constants,如下所示:

public final static int DEFAULT_VAL = 2;

这在我的代码中的几个 JSP 中使用:

if (sample.hasModule(Constants.DEFAULT_VAL){
    // some code
}

但是,当我最近将常量的类型从 更改int为时long,我在 jsp 上得到了一个noSuchMethodError调用它,因为Constants.DEFAULT_VALjsp 中的仍然返回 int 而不是 long。

我还更改了所有方法,例如hasModule从将intas 参数更改为long.

java中的常量有什么特殊处理吗?

谢谢!

4

1 回答 1

0

因为你只发布了一条线,我只能猜到。

JSP 文件 - 因为 apprivtation 保留 - 使用 Java 执行。Java 允许您覆盖方法。

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

于 2012-08-01T11:30:50.010 回答