在Java中,哪些重载将被选择为NULL?如果我用Java编写这一行:JOptionPane.showInputDialog(null, "Write something");哪种方法会被调用?showInputDialog(Component parent, Object message)showInputDialog(Object message, Object initialSelectionValue)我可以测试一下。但在其他类似的情况下,我想知道会发生什么。
3 回答

米琪卡哇伊
TA贡献1998条经验 获得超6个赞
showInputDialog(Component parent, Object message)
如果多个成员方法既可访问又适用于方法调用,则有必要选择一个成员方法为运行时方法分派提供描述符。Java编程语言使用的规则是 最具体方法被选择。
非正式的直觉是,一个方法比另一个方法更具体,如果第一个方法处理的任何调用都可以传递给另一个方法,而不会出现编译时类型错误。

慕神8447489
TA贡献1780条经验 获得超1个赞
public class Main { public static void main(String[] args) { Main m = new Main(); m.testNullArgument(null); } private void testNullArgument( Object o ) { System.out.println("An Object was passed..."); } private void testNullArgument( Integer i ) { System.out.println("An Integer was passed..."); } private void testNullArgument( String s ) { System.out.println("A String was passed..."); }}
reference to testNullArgument is ambiguous, both method testNullArgument(java.lang.Integer) in testnullargument.Main and method testNullArgument(java.lang.String) in testnullargument.Main match
添加回答
举报
0/150
提交
取消