我有以下方法:
static void f(double x)
{
System.out.println("f(double)");
}
static void f(Double xObj)
{
System.out.println("f(Double)");
}
static void f(double... s)
{
System.out.println("f(double...)");
}
public static void main(String[] args)
{
double x1 = 8.5;
Double xO1 = 5.25;
f(x1);
f(xO1);
}
输出:
f(double)
f(Double)
搜索重载方法的规则如下:
当使用原始参数调用方法f
时,此规则适用,但使用自动装箱参数调用时,此规则不适用。
如果这条规则是否正确,有人可以解释一下吗?什么是正确的?
感谢您提前:)
答案 0 :(得分:1)
Java使用this rule
选择最适合参数的方法“当使用原始参数调用方法f时,此规则适用,但在使用自动装箱参数调用时,此规则不适用。”
当您移除方法f(Double)
时,f(xO1)
会调用f(double)
,因为那是唯一,最具体 适合参数的方法。
作为参考,您可以查看Java Language Specification