Java字符串:“String s=新字符串(”愚蠢“);我是一个学习Java的C+的人。我正在阅读有效的Java,有些东西让我感到困惑。它说永远不要写这样的代码:String s = new String("silly");因为它创造了不必要的String物品。相反,它应该是这样写的:String s = "No longer silly";好吧,到目前为止…但是,考虑到这门课:public final class CaseInsensitiveString {
private String s;
public CaseInsensitiveString(String s) {
if (s == null) {
throw new NullPointerException();
}
this.s = s;
}
:
:}CaseInsensitiveString cis = new CaseInsensitiveString("Polish");String s = "polish";为什么第一条声明没问题?不是应该吗CaseInsensitiveString cis = "Polish";我该怎么做CaseInsensitiveString表现得像String所以上面的语句是OK的(有和没有扩展String)?是什么让字符串能够像那样传递一个文字呢?根据我的理解,Java中没有“复制构造器”的概念?
3 回答

缥缈止盈
TA贡献2041条经验 获得超4个赞
String
String
String s = new String("Polish");
"Polish"
String
CaseInsensitiveString cis = new CaseInsensitiveString("Polish");

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
System.out.println("foo" == "foo");System.out.println(new String("bar") == new String("bar"));
添加回答
举报
0/150
提交
取消