5

我想将字符串参数作为“null”传递

但是,这是针对构造函数中的超级方法的-所以我不能这样做

String s = null;
super(s);

我不能只是做

super(null)

因为这将导致模棱两可的方法调用。我也不希望有一个为此为空的实例变量,这似乎不优雅。

有没有办法创建一个空字符串?

注意

 new String(null) //does not compile
4

3 回答 3

5

就这样做

super((String)null);
于 2012-12-14T11:46:26.700 回答
3

CodeMan 贴出正确答案,另一种解决方案,远离 null,并考虑使用 Empty 字符串进行初始化

super("");

这将避免以后进行空检查。

于 2012-12-14T11:50:38.203 回答
1

您遇到的问题是编译器不知道应该使用哪个构造函数。

String 有各种单参数构造函数。

 String(String)
 String(char value[])
 String(StringBuffer)
 String(StringReader)

使用String(null)时,不知道应该使用哪个。

请记住,当您使用nullas 参数(在方法或构造函数中)时,您应该始终将其转换为所需的类型。

new String((String) null);

于 2012-12-14T12:04:08.617 回答