传递 null 时选择哪个构造函数?

2023-11-24

在下面的示例中,我有 2 个构造函数:一个采用 String,另一个采用自定义对象。在此自定义对象上存在一个方法“getId()”,该方法返回一个字符串。

public class ConstructorTest {
 private String property;

 public ConstructorTest(AnObject property) {
  this.property = property.getId();
 }

 public ConstructorTest(String property) {
  this.property = property;
 }

 public String getQueryString() {
  return "IN_FOLDER('" + property + "')";
 }
}

如果我将 null 传递给构造函数,会选择哪个构造函数,为什么?在我的测试中,选择了 String 构造函数,但我不知道是否总是如此以及为什么。

我希望有人能为我提供一些对此的见解。

提前致谢。


通过做这个:

ConstructorTest test = new ConstructorTest(null);

编译器会抱怨说:

构造函数ConstructorTest(AnObject) 是模棱两可的。

JVM 无法选择要调用哪个构造函数,因为它无法识别与构造函数匹配的类型(请参阅:15.12.2.5 选择最具体的方法).

您可以致电specific通过类型转换参数来构造函数,例如:

ConstructorTest test = new ConstructorTest((String)null);

or

ConstructorTest test = new ConstructorTest((AnObject)null);

Update:感谢@OneWorld,可以访问相关链接(撰写本文时最新)here.

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

传递 null 时选择哪个构造函数? 的相关文章

随机推荐

  • JavaScript 的解析会识别什么字符串日期格式?

    我知道在构建一个DateJavaScript 中的对象带有dateString参数 字符串必须是parse 能认出来 什么日期格式可以parse认出 例如 var postDate new Date 2011 03 08T23 52 38
  • 如何在 Jackson 中指定反序列化顺序?

    我有两个字段 startDate and endDate我需要确保结束日期等于或晚于开始日期 最好的方法是什么 我想确保endDate之后被反序列化startDate 所以我可以将逻辑放入其 setter 方法中 例如 JsonSetter
  • Pyomo 无法找到 GLPK 解算器

    我正在尝试将 GLPK 解算器与 Pyomo 一起使用 我有一个已经过测试的工作模型 但不断收到错误消息 提示无法找到 GLPK 警告 无法找到解算器 glpk 所需的 glpsol 可执行文件 我已经成功安装glpk 我还将目录添加到路径
  • 分配给较大宽度整数时的 C 整数溢出行为

    如果我在 C 中执行以下代码 include
  • 为什么我的应用程序无法在 Heroku 上建立 websocket 连接?

    我正在尝试在heroku 上部署我的nodejs 应用程序 我无法建立 websocket 连接 我已经阅读了我能找到的所有内容 尝试了每个示例 但似乎没有一个对我有用 当我尝试打开我的页面 heroku open 时 nodejs 正确地
  • C# 中的 HttpWebRequest 不适用于 .net 4.5

    我正在开发一个 C 项目 该项目将 xml 发送到服务器并接收 xml 作为响应 安装 Net Framework 4 0 后 可以正常工作 安装 Net Framework 4 5 后 它会抛出此异常 System NullReferen
  • 是否可以在 Rails 中创建两个日期之间的月份列表

    我正在尝试创建一个页面来显示每个月的链接列表 按年份分组 月份必须位于 今天 和 首次输入的日期 这两个日期之间 我在砖墙上 我不知道如何创建它 任何帮助将不胜感激 问候 亚当 只需将您想要的内容放入范围循环中并使用 Date MONTHN
  • Flutter:将 Widget 的边缘与第二个 Widget 重叠

    我想将一个小部件的底部边缘与另一个小部件重叠 使其看起来像这样 我正在使用堆栈将箭头按钮放置在卡片上 目前我只是设置了位置 上面有一个看不见的框 问题是这种方法仅适用于确切的分辨率 它应该与屏幕尺寸无关 小部件的必要代码 Stack chi
  • 增加 catalina.bat 文件中堆大小的最佳方法

    我在 windows xp 上有 tomcat 6 服务器 并且我通过控制台启动 tomcat 即使用startup bat AFAIK catalina bat文件适用于 Windows 因此我正在更改 bat 文件以进行内存管理 我没有
  • 如何调用Web服务方法进行测试,例如从浏览器

    有一个 dll webservice 用 Delphi 制作 有一个名为List它返回字符串列表 宽字符串 是否有任何方法可以调用该服务而无需编写客户端应用程序来使用它 Ex http misitio com 8080 miwebservi
  • Emacs 24内置cedet功能亮点

    我想去掉上面的下划线功能 例如 如上面 void 的屏幕截图所示 http cedet sourceforge net img gen semantic ia complete menu png 我在文档中找不到任何明显的内容 但哎呀 我什
  • 将行替换为空格,将反斜杠替换为包含空格的字符串

    我想替换以下行 memory 20g with memory 100g 实际上它应该替换之后的任何数字 memory 以下是我所拥有的 但无法获得预期的结果 sed i E s b memory memroy 100g g a txt 您不
  • 如何在代码外部(即 XML 文件中)定义 AutoMapper 映射,或使用不同的方法来实现完全可配置的对象映射?

    EDIT 最初我打算使用 AutoMapper 来实现我的目标 但我必须知道 AutoMapper 并不是这样工作的 它使您可以创建配置文件 但在我的情况下 完全可配置 我需要为每个参数组合一个配置文件 所以我想出了一种自己的方法 请参阅答
  • AngularJS - jQuery UI - 绑定问题

    我目前正在将一个大型应用程序移植到一个基于 HTML5 的 Web 应用程序 我已经开始在 AngularJS 中构建该应用程序并享受 AngularJS 框架的强大功能 目前我遇到一个问题 我有一个指令为我提供了 jQuery Datep
  • 如何让 Python / PostgreSQL 更快?

    现在我有一个日志解析器读取 515mb 的纯文本文件 过去 4 年里每天的一个文件 我的代码目前是这样的 http gist github com 12978 我已经使用了 psyco 如代码中所示 并且我也在编译它并使用编译后的版本 它每
  • 如何将 tail -f 通过管道传输到 awk 中

    我正在尝试设置一个脚本 当日志文件中出现某个字符串时 会生成警报 已有的解决方案每分钟一次 grep 整个日志文件 并计算字符串出现的频率 使用日志行的时间戳仅计算前一分钟的出现次数 我认为用尾巴来做这件事会更有效 所以我尝试了以下方法作为
  • ASP.NET中如何在Web表单之间传递信息

    如何在asp net中将一些信息从一个Web表单发送到另一个Web表单 第一个网页表单是HumanList aspx显示a中的人类列表GridView成分 当用户单击编辑链接时 我想传递 humanID 人类记录 ID 的值 HumanLi
  • Google 自动完成教程为 swift 放置 api

    我想要一个自动完成文本字段 可以像 Android 一样自动完成位置 https developers google com places training autocomplete android 有谁知道我在哪里可以找到这方面的教程或示
  • 使用 youtube 播放器 api 在后台播放 Youtube 视频

    我已经使用成功播放了 YouTube 视频youtube player api 但我需要在按下后退按钮时在后台运行它 我用谷歌搜索了很多 但没有找到任何结果请帮助我实现这一目标 提前致谢 这是我的代码 public class Fullsc
  • 传递 null 时选择哪个构造函数?

    在下面的示例中 我有 2 个构造函数 一个采用 String 另一个采用自定义对象 在此自定义对象上存在一个方法 getId 该方法返回一个字符串 public class ConstructorTest private String pr