当前位置: 首页 > 面试题库 >

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

鲁洋
2023-03-14
问题内容

如果我用Java编写此行:

JOptionPane.showInputDialog(null, "Write something");

将调用哪种方法?

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

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


问题答案:

在最具体的方法将被调用-在这种情况下,

showInputDialog(Component parent, Object message)

这通常在规范(15.12.2)中的过载解析的“确定方法签名”步骤下进行,尤其是在“选择最特定的方法”下。

在不涉及细节的情况下(你可以在此处像在规范中阅读的一样详细),引言给出了很好的总结:

如果可以访问多个成员方法并将其应用于方法调用,则必须选择一个成员方法来为运行时方法分派提供描述符。Java编程语言使用选择最特定方法的规则。

非正式的直觉是,如果第一个方法处理的任何调用都可以传递给另一个方法而没有编译时类型错误,则一个方法比另一个方法更具体。



 类似资料:
  • 问题内容: 我正在寻找一个Java Web框架,该框架可让我充分使用jQuery,例如.NET平台上的ASP.NET MVC。 有什么建议吗? 问题答案: 如果您想用Java的jQuery着迷,那就去寻找基于请求/动作的MVC框架,例如Struts 1.x ,Spring MVC ,Stripes或Play等等。其中,Spring MVC是最合适的。 基于组件的MVC框架(如JSF,Struts

  • 在我的Spring Boot项目中,我在资源文件夹中有application-default.properties文件,在名为“config”的文件夹中有另一个application.properties文件。这个文件夹是我在项目文件夹中手动创建的。现在,当我通过eclipse运行spring boot应用程序时,它会在config目录中找到properties文件,当我创建同一项目的jar并通过

  • 问题内容: 给出以下代码: 输出(意外)如下: 问题出在第一行,我希望与其他两行相同。此外,我发誓直到最近,编译器仍会为我的普通调用给出模糊的调用警告。但是,使用Java 5和6进行编译和测试会产生相同的结果。 这对我来说是一个重要的问题,因为我有很多代码都使用这种模式,即使用不同类型的重载“默认”参数来选择返回类型并推断所需的转换/解析。谁能解释这是怎么回事? 问题答案: Java始终以相同的方

  • 在过去的几周里,我一直在与AngularJS合作,有一件事确实让我感到困扰,那就是即使在尝试了所有的排列或规范中定义的配置之后http://docs.angularjs.org/api/ng.directive:select,我仍然得到一个空选项作为select元素的第一个子元素。 这是翡翠: 这里的控制器: 最后,这里是生成的HTML: 我需要怎么做才能摆脱它? 注意:没有这个东西也可以工作,但

  • 问题内容: 当您限制通常用于分页的SQL查询返回的行数时,有两种方法可确定记录总数: 方法1 将选项包括在原始选项中,然后通过运行获取总行数: 方法二 正常运行查询,然后通过运行获取总行数 哪种方法最好/最快? 问题答案: 这取决于。请参阅有关此主题的MySQL Performance Blog帖子:http : //www.mysqlperformanceblog.com/2007/08/28/

  • 问题内容: 如何像在SQL中一样添加过滤器,以从特定列中选择非空值? 如何使用SQLAlchemy过滤器执行相同操作? 问题答案: 会产生一个约束: 在列上下文中,产生子句。如果目标是,则生成一个。 或使用(0.7.9中的新功能): 实施操作员。 通常,当与的值进行比较时,会自动生成,解析为。但是,如果与某些平台上的布尔值进行比较,则可能需要显式使用。 演示: