Java 中哪个重载会被选择为 null?

2024-04-02

如果我用 Java 写下这一行:

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

将调用哪个方法?

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

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


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

showInputDialog(Component parent, Object message)

这通常属于“确定方法签名” http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2规范 (15.12.2) 中重载决策的步骤,特别是“选择最具体的方法” http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2.5.

在不深入细节的情况下(您可以在规范中阅读这些细节),简介给出了很好的总结:

如果多个成员方法同时存在 可访问并适用于方法 调用时,需要选择 一个提供描述符 运行时方法调度。爪哇 编程语言使用规则 认为最具体的方法是 选择的。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中哪个重载会被选择为 null? 的相关文章

随机推荐

  • 如何阻止 PyCharm 填充文档字符串?

    如果我使用三引号将文档字符串添加到方法中 只要我在三引号后键入空格 PyCharm 就会使用该方法采用的参数和返回值填充文档字符串 如下所示 def fill blank self direction param direction ret
  • 如何在“pytest”框架中的固定装置中的“拆卸”中使用测试结果

    我正在尝试使用测试结果或状态来拆卸夹具 但是如果不使用 pytest 框架中的关键字 yield 我将无法找到代码 import pytest import requests pytest fixture def update result
  • TensorFlow Custom Estimator - 在 model_fn 发生微小变化后恢复模型

    我在用tf estimator Estimator为了开发我的模型 我写了一个model fn并训练了 50 000 次迭代 现在我想对我的model fn 例如添加一个新层 我不想从头开始训练 我想恢复 50 000 个检查点的所有旧变量
  • 如何按值(DESC)然后按键(ASC)对字典进行排序?

    就在发现了惊人的事情之后sorted 我又陷入困境了 问题是我有一本以下形式的字典string key integer value 我需要按整数值的降序对它进行排序 but如果两个元素具有相同的值 则按键的升序排列 一个更清楚的例子 d b
  • Flask Unicode 解码错误

    Error UnicodeDecodeError ascii 编解码器无法解码位置 24 中的字节 0xf0 序数不在范围内 128 所以基本上我有一个 Flask 应用程序 用户填写注册表单并呈现一个新页面 这是代码 render tem
  • 使 UIScrollView 以 UITextView 作为子视图获取触摸事件

    我有一个包含 UITextView 不可编辑 的 UIScrollView 我无法使 UIScrollView 获取触摸事件 UITextView 似乎获取并保留它们 知道如何让 UIScrollView 获取触摸事件吗 我希望 UITex
  • 在元素属性内回显?

    我只是想知道是否可以将 php echo 放入 iframe 中 像这样的东西 如果不是 正确的做法是什么 PHP 的工作方式是在发送 HTML 之前在幕后完成工作 因此当您实际将完整数据发送给用户时 它已被解析为应提供给浏览器的内容 也就
  • Jetpack Compose LargeTopAppBar 显示标题两次

    我正在尝试使用 Scaffold 和 LargeTopAppBar 构建 Jetpack Compose 应用程序 我目前有一个非常简单的 UI 只有 Scaffold 中的 LargeTopAppBar 但是当我运行我的应用程序时 我在屏
  • 使用 XML 和 XSL

    第一次编辑我正在获取Child 1标签以 C 形式放入 DropDownList 请建议用于删除 XML 文件中的父标签及其所有子标签的最佳实践代码 C 例子
  • 从n中生成k个元素的“反灰色”按需组合的算法

    我正在尝试实现一种算法 从一组 n 个元素中获取 k 个元素的所有组合 其中两个连续组合之间的差异最大化 类似于反向格雷码 换句话说 应该对组合进行排序以避免元素连续出现两次 这样就不会不必要地歧视任何元素 理想情况下 该算法也不会预先计算
  • C# 的每个循环按什么顺序迭代 List

    我想知道 C 中的 foreach 循环循环的顺序System Collections Generic List
  • 是否有用于平面度测试的在线算法?

    我知道平面度测试 http en wikipedia org wiki Planarity testing可以在 O v 相当于 O e 因为平面图有 O v 条边 时间内完成 我想知道是否可以在 O 1 摊销时间内在线完成 因为添加每个边
  • 在 MySQL 中使用 NoSQL

    我注意到 MySQL 可以将 Memcached NoSQL 与 InnoDB 结合使用 但我无法检索有关如何使用它的信息 我想与 PHP 一起使用 NoSQL 查询是标准的吗 首先 MySQL从5 6版本开始只支持NoSQL的memcac
  • 在 Django 中创建时将用户添加到组

    仅当创建用户后将该用户的字段指定为 True 时 我才希望将用户添加到组中 创建的每个用户都会有一个与之关联的 用户配置文件 这是实现这样的事情的正确方法吗 模型 py def add group sender instance creat
  • npm run build 不使用代理

    我有一个正在运行的react js应用程序 它使用npm start 使用create react app构建的应用程序 运行 当我尝试运行 npm run build 时 它会构建应用程序 我用它来服务 serve s build l 3
  • LIKE 条件中的多个字符串 - Presto SQL

    我想使用查询表中的列LIKE条件 这工作正常 select from my table where my column LIKE hello 但是 如何在我的数据库中使用多个字符串查询此列LIKE健康 状况 寻找类似的东西 select f
  • Flash 安全错误 #2048:是否有解决方法,或者 Twilio 是否必须更改其元策略?

    我的 Flash Flex 应用程序出现问题 几个月来 它可以从 Twilio 下载文件 但现在我收到以下错误 我不得不删除超链接 所以想象 ttp 实际上是 http 安全错误事件 类型 安全错误 气泡 false 可取消 假事件阶段 2
  • Bash 将 Curl 结果存储到数组中

    我正在运行以下curl命令 results curl USERNAME PASSWORD URL search dates dateFields created from Three Months Ago today repos gener
  • jenkins maven setPerCoreThreadCount

    詹金斯版本 1 538 使用 Maven 3 1 0 工作得很好 使用 Maven 3 2 1 会出现以下错误 Jenkins自己安装了Maven 3 2 1 从Apache下载并解压 怎么了 Parsing POMs maven31 ag
  • Java 中哪个重载会被选择为 null?

    如果我用 Java 写下这一行 JOptionPane showInputDialog null Write something 将调用哪个方法 showInputDialog Component parent Object message