gpt4 book ai didi

java - 将 null 传递给重载方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:07:39 26 4
gpt4 key购买 nike

<分区>

我对以下两个程序的输出感到困惑。

当我在程序 1 中只有两个方法的参数为 StringObject 时,它给我的输出为 String

但是当我在程序 2 中添加一个参数为 Integer 的新方法时,它不会编译并给出错误方法 nullTest(Object) 对于类型 testNull 不明确

程序 1:

package onkartest;

public class TestNull {
public static void nullTest(Object b)
{
System.out.println("object");
}

public static void nullTest(String x)
{
System.out.println("String");
}

public static void main(String x[])
{
nullTest(null);
}
}

输出:字符串

程序 2:

package onkartest;

public class TestNull {
public static void nullTest(Object b)
{
System.out.println("object");
}

public static void nullTest(String x)
{
System.out.println("String");
}

public static void nullTest(Integer i)
{
System.out.println("Integer ");
}

public static void main(String x[])
{
nullTest(null);
}
}

输出:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

The method nullTest(Object) is ambiguous for the type testNull

at onkartest.testNull.main(testNull.java:26)

而且,如果我运行程序时只保留 Object 参数方法,它会给我输出 Object

你能解释一下这种行为背后的原因吗?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com