java - 有没有办法在 Java 中显式指定构造函数?

标签 java constructor

this question 的答案解释了构造函数不明确问题的原因,但是如果我真的想构造一个包含此类构造函数的第三方对象,并且我想将参数传递为 null,我是否可以构造该对象通过某种方式告诉 java 我指的是哪个构造函数?

特别是,在这个例子中:

public Example(String name) {
    this.name = name;
}

public Example(SomeOther other) {
    this.other = other;
} 

假设我想使用第一个构造函数实际构造一个 new Example(null)。 是否有一些语法可以让我这样做?

最佳答案

是的,通过显式转换 null 参数:即通过调用 Example((String)null);Example((SomeOther) null);

如前所述,这样做表明设计不佳,我同意。您将想要尝试编写防弹代码,其中这种歧义是不可能的或无关紧要的。

关于java - 有没有办法在 Java 中显式指定构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21567327/

相关文章:

c++ - C++程序在Visual Studio 2010中编译,但不能在Mingw中编译

c++ - 不明确的模板类构造函数

ios - Swift nsobjecttype 构造函数

java - 为具有 "interchangeable"字段的对象实现哈希码

java - 在不知道格式的情况下从字符串日期创建日历

java - 在 JSP 页面中运行 .jar 文件

java - 构造函数什么时候初始化?

java - KieBuilderImpl.buildAll 因 NullPointerException 失败

java - 掷骰子,有 50% 的几率掷出 6

c++ - 在 C++ 类中使用非默认构造函数构造对象