JAVA 对象/字符串方法重载

标签 java

出于好奇,我尝试了这个示例。

public class Class1 {

    public void method(Object obj){
        System.out.println("Object");
    }

    public void method(String str){
        System.out.println("String");
    }

    public static void main(String... arg){
        new Class1().method(null);
    }

}

输出为“字符串”。我想知道JVM在什么基础上决定调用将String作为参数而不是Object的方法。

最佳答案

只要可以将多个重载方法应用于参数列表,就会使用最具体的方法。

在这种情况下,可以在传递 null 时调用任何一种方法,因为“null 类型”可以分配给 ObjectString。采用 String 的方法更具体,因此会被选中。

关于JAVA 对象/字符串方法重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17669804/

相关文章:

java - 在小程序缓存查看器中显示版本名称

java - 泛型中的泛型

java - 在 Netbeans 中设置 JLabel 文本不起作用

java - 是否有一种快速方法可以从任何集合/映射中获取与条件列表之一匹配的所有元素?

java - 双链表实现回文检查器

java - Spring安全过滤器不起作用。 Spring 的 bug ?

java - 如何在 Java 中获取主题级别的 Kafka 指标?

Java ArrayList的创建、编辑和删除

Java 泛型和类型转换

java - Android 上视频的静音按钮