要创建列表,为什么Java不允许创建它们,然后元素一个接一个地添加?
这有效:
public static List<TrackedItem> create(List<Item> items)
{
TrackedItem[] arr = new TrackedItem[items.size()];
int i = 0;
for (Item item : items)
{
arr[i] = TrackedItem.createOrUpdate(item);
i++;
}
return java.util.Arrays.asList(arr);
}
这不起作用(
tracked.add()
导致NullPointerException
):public static List<TrackedItem> create(List<Item> items)
{
List<TrackedItem> tracked = java.util.Collections.emptyList();
for (Item item : items)
{
tracked.add(TrackedItem.createOrUpdate(item));
}
return tracked;
}
最佳答案
java.util.Collections.emptyList();
静态的
清单
emptyList()
返回空列表(不可变)。
这意味着您将无法更改此列表。
其定义为:
静态列表EMPTY_LIST
空列表(不可变)。
Java sun reference中的引号
编辑:
要创建新列表,您可以使用
List myList = new ArrayList<MyClass>();