【问题标题】:Method Overloading not working as expected [duplicate]方法重载未按预期工作[重复]
【发布时间】: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


【解决方案1】:

你错过了数字末尾的 L 表示它很长。

【讨论】:

    猜你喜欢
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2018-08-26
    相关资源
    最近更新 更多