相关疑难解决方法(0)

在Java中选择哪个重载为空?

如果我用Java写这行:

JOptionPane.showInputDialog(null, "Write something");
Run Code Online (Sandbox Code Playgroud)

将调用哪种方法?

  • showInputDialog(Component parent, Object message)
  • showInputDialog(Object message, Object initialSelectionValue)

我可以测试一下.但在其他类似的情况下,我想知道会发生什么.

java parameters methods invocation

52
推荐指数
3
解决办法
8270
查看次数

Null是引用类型,它是String引用还是Object引用?

null是一个引用,它只是null类型,即null不是对象类型.但是,当我运行下面的代码片段我很惊讶,当我传递null方法method(null);调用method(String s)没有method(Object o).

如果null本身由Java定义的,而不是对象类型的类型,那么为什么它叫method(String s)method(Object o)

public class Test {
    public static void main(String[] args) {
        method(null);
    }
    public static void method(Object o) {
        System.out.println("Object impl");
    }
    public static void method(String s) {
        System.out.println("String impl");
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

我添加了一个方法:

public static void method(Integer s) {
   System.out.println("String impl11");
}
Run Code Online (Sandbox Code Playgroud)

现在编译器给出了错误The method method(Object) is ambiguous for the type Test.

Integer a = null; …
Run Code Online (Sandbox Code Playgroud)

java oop object

7
推荐指数
1
解决办法
268
查看次数

null如何在此代码中工作?

null如何在此代码中工作,为什么不打印对象?

class Test1{
    public void doStuff(Object o){
    System.out.println("In Object");
}

    public void doStuff(String o){
        System.out.println("In String");
    }
}

public class TTest {
    public static void  main(String args[]){    
        Test1 t = new Test1();
        t.doStuff(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

在字符串中

java

3
推荐指数
1
解决办法
127
查看次数

标签 统计

java ×3

invocation ×1

methods ×1

object ×1

oop ×1

parameters ×1