java - JAVA中重载方法的调用顺序

标签 java int literals overloading

我正在学习一些 java 考试,我遇到了这个问题:

//Write the output of this program:

public static void method(Integer i) { System.out.println("Integer"); }
public static void method(short i) { System.out.println("short"); }
public static void method(long i) { System.out.println("long"); }
//...
public static void main(String []args) {
method(10);
}

//ANSWER: long

解释说明对于整型字面量,JVM按照顺序匹配:int, long, Integer。既然没有int类型参数的方法,那就找long类型;等等。

在这个解释中,他们只提供了 int、long 和 Integer 的顺序。 所以我的问题是:当在为每种类型(使用整数)重载的方法中引入整数文字时,完整的顺序列表是什么?

此外,float、double 等的顺序是什么...?(十进制值)

最佳答案

完整列表可能是 int、long、float、double、Integer、Number/Comparable/Serializable、Object。

注意:Number、Comparable 和 Serializable 是不明确的。需要显式转换才能选择其中之一。

关于java - JAVA中重载方法的调用顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255774/

相关文章:

java - 如何在 Java 中包含上述目录中的文件?

Java错误: release version 14 not supported in IntelliJ IDEA

c# - 将除以 10 的整数四舍五入到最接近的整数

python - 使用 mysql 常量的 sqlalchemy 语法

python - 为什么 000 在 Python 3 中计算为 0?

java - 在 Java 上验证 AWS id token

java - DataOutputStream 发送了错误的数据

xcode - NSTimer:浮点值无法转换为 UInt8,因为它大于 UInt8.max

python - python2/3 中 int 列表或数组的十六进制字符串,无需测试 python 版本且无需循环

java - 数组文字只能用于声明?