Java 中空参数的重载解析
当将 null 作为参数传递给 Java 中的重载方法时,了解哪个方法至关重要将被选择进行调用。
考虑以下内容例如:
JOptionPane.showInputDialog(null, "Write something");
JOptionPane.showInputDialog 存在两个重载方法:
传递时会调用以下哪一个重载null 作为父参数?
答案:
Java 解决重载是基于“最具体方法”的原则。在这种情况下,最具体的方法是:
showInputDialog(Component parent, Object message)
此规则源自重载解析过程,特别是称为“确定方法签名”的步骤。编译器搜索可以处理输入类型(在本例中为 null 和 String)的最具体方法。
“更具体”的方法是根据一个重载的调用是否可以传递给另一个重载的调用而确定的导致编译时类型错误。在此示例中,对第一个重载的任何调用都可以传递到第二个重载而不会出现错误,但反之亦然。
因此,当将 null 传递给 JOptionPane.showInputDialog 时,带有 Component 父参数(最具体的方法)将被选择进行调用。
以上是当传递空参数时,Java 如何解决重载方法?的详细内容。更多信息请关注PHP中文网其他相关文章!