【发布时间】:2020-06-13 06:23:44
【问题描述】:
我是 Java 新手,正在尝试学习方法重载,但有点困惑。这是我的程序
class Adder {
static void add(int a, int b) {
System.out.println("a method invoked");
}
static void add(long a, int b) {
System.out.println("b method invoked");
}
}
class TestMethodOverloading {
public static void main(String[] args) {
Adder.add( 9223372036854775807,12);
}
}
我收到编译器错误提示
java: integer number too large
我很困惑为什么这里没有调用带参数long的方法add?
【问题讨论】:
-
不是重载的问题,而是如何创建
long字面量的问题。如果没有L后缀,您的号码代表int,但该号码超出int范围。
标签: java methods floating-point overloading long-integer