繁体   English   中英

Java将int重载为long

[英]Java overloading int to long

参考Java 重载 - long 和 float ,其中提到了 JLS #15 中的规则

以下规则定义了原始类型之间的直接超类型关系:

双 >1 浮点数

浮动 >1 长

长 >1 整数

整数 >1 个字符

int >1 短

短 >1 字节

其中“S > 1 T”表示“T 是 S 的直接子类型”,根据本节上方的 JLS #4.10。

为什么下面的代码打印浮动?

int q = 2;
a(q);

void b(long a) {
        System.out.println("long");
}

void a(float a) {
        System.out.println("float");
}

只有一种名为a方法接受浮点参数,

Java 支持从floatint关系(直接超类型关系)(在中间使用long ):

浮动 > 长 - > 整数

如果重命名方法ba ,你将与执行方法long如你预期

void a(long a) {
        System.out.println("long");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM