我想知道是否有更优雅的方法来返回属性并更改/"重置"它的价值。这就是我现在这样做的方式:
[...]
final List<T> copyOfOriginal = new ArrayList<T>(original);
original.clear();
return copyOfOriginal;
[...]
我真的要复制整个清单吗?
答案 0 :(得分:5)
在许多情况下,可以在返回原始引用时简单地用新的空列表替换列表:
final List<T> ret = original;
original = new ArrayList<T>();
return ret;
这里需要注意的是,这会改变原始引用。如果有多个副本,可能需要额外的照顾。