gpt4 book ai didi

java - 在 Java 中如何解决从重载方法中选择的歧义?

转载 作者:太空狗 更新时间:2023-10-29 22:33:21 26 4
gpt4 key购买 nike

package org.study.algos;
public class Study {

public static void main(String[] args) {
A a = new A();
a.m1(null);
}
}
class A {
public void m1(String s) {
System.out.println("String");
System.out.println(s);
}
public void m1(Object obj) {
System.out.println("Object");
System.out.println(obj);
}
}

这里的输出是

String null

为什么 JVM 将方法解析为带有字符串参数的方法?

提前致谢J

最佳答案

这是一个相当复杂的算法,详见 JLS 15.12 .但是这里相关的部分是 15.12.2 ,表示“选择了最具体的一个”。 Object 和 String 重载都是“可访问和适用的”(String 是适用的,因为 null 文字是所有类型的引用),而 String 更具体。

编辑:根据句法更正部分。

关于java - 在 Java 中如何解决从重载方法中选择的歧义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608394/

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