-3

我使用类型对象并在循环内填充数据,最后我想清除里面的数据,我没有看到任何清除它的选项(使用 .+CTRL SPACE),我不想创建新的例如,因为我只想创建一次对象类型,是否有解决方法来清除它?

我只想为specObject执行一次以下操作,即创建实例类型列表或对象,然后我有循环填充该对象内的数据,当我完成并想在specObject中创建新实例时,我想在之前清除它,我该怎么做?

List<Object> itemObject = null;
        Object specObject = null;

        // Check instance type whether is list or specific object instance
        if (multiplicity.equals(MULTI_N)) {
            itemObject = new ArrayList<Object>();
            return itemObject;
        } else if (multiplicity.equals(MULTI_1)) {
            return specObject;
        } else {
            return specObject;
        }
4

1 回答 1

1

您可以在对象上调用该clear方法。List这将删除所有元素,而无需创建新实例。文档在这里

只是要注意对象引用

当我完成并想在 specObject 中创建新实例时,我想先清除它,我应该怎么做?

假设您有一个列表:

ArrayList<String> strings = new ArrayList<String>();

如果您将一些字符串对象添加到此列表中:

strings.add("Hello");
strings.add("There");
strings.add("StackOverflow");

strings然后你使对象无效。

strings = null;

您已经有效地删除了列表中的所有元素?为什么?好吧,当您声明时ArrayList<String> strings;,您并没有创建一个新对象。您正在创建一个指向对象的新引用(指针)。为了说明这一点:

String s = "Hello";
String s2 = s; // s2 points to the same object that s points to.
String s3 = "Another String"; // S3 points to a different object.

此规则的一个例外是,如果您声明:

String s = "Hello";
String s2 = "Hello"; // s2 will point to the same object as s.

当一个对象没有被任何东西指向时,它会被垃圾收集器移除。如此有效,如果您声明:

strings = null;

您正在删除String您添加到的所有子对象。

于 2013-05-05T12:11:53.847 回答