public class NewMain
{
public static void main(String[] args)
{
long num = 100;
System.out.println(xMethod(5,1000000000000L));
}
public static int xMethod(int n, long x)
{
System.out.println("int, long");
return n;
}
public static long xMethod(long n, long x)
{
System.out.println("long, long");
return n;
}
}
对我来说,这看起来非常模糊。
在整数范围内的数字可以是 long 类型,这通过声明 num 变量可以得到证明。
我很好奇如果我有两个参数不同的方法会发生什么。
显然,在编写参数时,数字必须在结尾处添加 L 以表明它是 long 类型,而在声明 num 时则不需要。
为什么会这样呢?
我最初认为,如果它在 int 范围内,它会自动将其视为 int,并且当它超过该范围时,它将被用作 long。但是,对于我的第二个参数,如果没有加上 L 它就无法通过。它说它不在 int 的范围内。
有人能给出一些清晰的规则吗?