给定构造函数:
A(B... params)
A(String param1, B... params)
当我调用A(null)
时,会调用第一个构造函数。有没有办法用参数null调用第二个构造函数,但是没有将null
强制转换为String
?
编辑: 我在描述我的问题上犯了一些错误,现在应该没问题。
答案 0 :(得分:1)
你有的地方
A a = new A(null);
这就是出错的唯一情况。 (假设B是具体类型,不是通用的。)你不想要
A a = new A((String)null);
A a = new A("");
然后去寻求最大限度,并添加一个快捷方式构造函数:
A() {
this((String) null);
}
A a = new A();
它不会阻止new A(null)
。
答案 1 :(得分:-2)
抱歉,但我没有看到你的问题。
public class A
{
A(String a)
{
System.out.println("constructor(String)");
}
A(String a, B... b)
{
System.out.println("constructor(String, B...)");
}
public static void main(String[] args)
{
new A(null, null);
}
private static final class B
{
}
}