要创建列表,为什么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>();

10-02 01:16
查看更多