我已经阅读了Jon Skeet 关于在Java中传递值的[优秀]文章,并在同一主题上看到了这个问题.我相信我理解他们,但我仍然想知道的是回报价值.
当一个对象被返回时(来自一个getter),然后在它的原始范围(它来自它)中被改变的是被赋予getter的返回值的变量所拥有的对象引用被改变了吗?那个满口的男孩..
借一个例子:
public class Dog {
String dog ;
public String getName()
{
return this.dog;
}
public Dog(String dog)
{
this.dog = dog;
}
public void setName(String name)
{
this.dog = name;
}
public static void main(String args[])
{
Dog myDog = new Dog("Rover");
String dogName = myDog.getName();
myDog.setName("Max");
System.out.println(dogName);
}
}
Run Code Online (Sandbox Code Playgroud)
这会打印Rover还是Max?
更新 是否打印流动站.
我原来问题的答案很棒,但Richard Tingle在下面的评论中添加了很多有用的信息,所以我想我会为后代提供我的测试课程.
public class Foo {
private ArrayList<Integer> arrayList;
public Foo() {
arrayList = …Run Code Online (Sandbox Code Playgroud)