对于Arraylist字符串对象,将检索添加的元素。如果是String,则方法调用对传递的String无效。
发生这种情况是因为Java是“按值传递”并且String
s是不可变的
您打电话的时候
markAsNull(ArrayList<String> str)
str将为
ArrayList指向相同的名称创建一个新的名称引用
al。当您
add将元素
str添加到同一对象时。稍后放到
str,
null但是该对象添加了新值,并由指向
a1。
您打电话的时候
markStringAsNull(String str){ str = str + "Append me"; // ...}该行通过附加给定的字符串来
str = str + "Appendme";创建一个新
String对象,并将其分配给
str。但同样,它只是对实际字符串的引用,现在它指向新创建的字符串。(由于不可变),并且原始字符串不会更改。



