[英]NullPointerException when trying to read parcel ArrayList<Object>
[英]NullPointerException when trying to set an element in a multidimensional ArrayList
我很難確定如何將對象添加到ArrayList的ArrayList中。
當我嘗試:
ArrayList<ArrayList<A>> matrix = new ArrayList<ArrayList<A>>();
matrix.add(new ArrayList<A>());
matrix.add(new ArrayList<A>());
matrix.add(new ArrayList<A>());
matrix.get(0).set(0, A);
我得到一個NullPointerException。
我究竟做錯了什么?
您正設置在arraylist中不存在的位置,可能您需要“添加”。
import java.util.ArrayList;
class A{}
public class arrlst {
public static void main(String[] args) {
ArrayList<ArrayList<A>> matrix = new ArrayList<ArrayList<A>>();
matrix.add(new ArrayList<A>());
matrix.add(new ArrayList<A>());
matrix.add(new ArrayList<A>());
/*matrix.get(0).set(1, new A());*/
matrix.get(0).add(new A());
}
}
您還需要創建A類對象,不能設置A.
我猜您可能正在獲取java.lang.IndexOutOfBoundsException
。 那是因為在matrix.add(new ArrayList<A>());
新添加的ArrayList的Size為0。set方法首先將AraayList的大小檢查一下,然后再將元素設置在上述位置。
public E set(int paramInt, E paramE) { RangeCheck(paramInt); Object localObject = this.elementData[paramInt]; this.elementData[paramInt] = paramE; return localObject; }
private void RangeCheck(int paramInt) { if (paramInt < this.size) return; throw new IndexOutOfBoundsException("Index: " + paramInt + ", Size: " + this.size); }
由於新添加的ArrayList的Size為0,因此拋出java.lang.IndexOutOfBoundsException
。
因此,在設置元素之前,請確保使用add方法將元素添加到ArrayList中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.