重载构造函数歧义

Eri*_*son 5 java

我试图在Java中使用一个可以接受a int[]或a 的重载构造函数String.我得到一个编译错误,这似乎表明在这个构造函数中,如果变量是一个null字符串或一个null数组,调用将是不明确的.

有一个简单的方法吗?

Joa*_*uer 16

将参数转换为以下类型之一:

Foo f1 = new Foo((int[]) null);
// or
Foo f2 = new Foo((String) null);
Run Code Online (Sandbox Code Playgroud)


Tom*_*ine 5

最简单的方法 - 避免null.如果它是一个空的String使用""; 一个空的int[]用途new int[].

要回答这个问题,您可以使用强制转换或为变量赋值null:

new MyClass((String)null)

final String nullString = null;
new MyClass(nullString)
Run Code Online (Sandbox Code Playgroud)

前者通常是首选,如果您打算这样做的话.