Java 对象引用

标签 java object collections arraylist

这是关于另一个类实例变量返回的 ArrayList 的用法。

Class A {

    //assigned list of string to it.
    private List < String > newAl;
    //returns the list
    public List < String > getList() {
        return newA1;
    }
}

Class Test {

    public void go() {
        List < String > list = a.getList();
        list.add("");
    }

}

在测试类中,当我检索列表并操作列表时。由于引用,类 A 列表也被操作。如果 A 是第三方代码的一部分。如何更正测试类中的代码,以便原始对象不会受影响吗?

最佳答案

ArrayList constructor需要一个集合,这样你就可以使用它:

List<String> list = new ArrayList(a.getList());

我认为这样做更好,但是根据您正在做的事情,您可能需要在 getter 中构造新的 List。这也有助于类型隐藏。

关于Java 对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16662472/

相关文章:

object - 在 PowerShell 中访问对象属性的值

c# - 替换 ICollection 中的元素

java - add() 方法什么时候在集合中添加对象

java - FluentWait 抛出 "The method until in the type Wait<WebDriver> is not applicable for the arguments"错误

java - Supercsv 生成异常

javascript - 如何将对象中的索引更改为值

scala - 如何将 Scala 数组转换为 Java 列表?

java - 如何使用java 8流查找字符串中的第一个重复字符而无需中间终端操作

java - 如何处理大于机器代表号的数字?

php - PHP 可以将类名中的对象实例化为字符串吗?