我有類似這樣的代碼:如何獲取初始化ArrayList的size()?
ArrayList<SomeType> toGetSizeOf = new ArrayList<SomeType>();
int size = toGetSizeOf.size();
但是,第二行是給我一個NullPointerException。有什麼方法可以避免這種情況,基本上可以告訴ArrayList是否已經初始化,但還沒有添加任何東西? (我有一個if
/else
聲明依賴於此)。
在此先感謝!
我有類似這樣的代碼:如何獲取初始化ArrayList的size()?
ArrayList<SomeType> toGetSizeOf = new ArrayList<SomeType>();
int size = toGetSizeOf.size();
但是,第二行是給我一個NullPointerException。有什麼方法可以避免這種情況,基本上可以告訴ArrayList是否已經初始化,但還沒有添加任何東西? (我有一個if
/else
聲明依賴於此)。
在此先感謝!
我想也許別的東西在你的代碼中是錯誤的。
下正常工作:
ArrayList<String> toGetSizeOf = new ArrayList<String>();
int size = toGetSizeOf.size();
System.out.println(size);
其中給出0
調試代碼,並檢查什麼實際上是空。我懷疑這是你的toGetSizeOf。
如果你有一個NullPointerException
,那麼你應該檢查它首先
您可以使用...
int size = 0;
if (toGetSizeOf != null) {
size = toGetSizeOf.size();
}
或...
int size = toGetSizeOf == null ? 0 : toGetSizeOf.size();
,你也可以的問題使用ArrayList#isEmpty
,如果列表爲空(size == 0
)或,則返回boolean
如果它不是,根據您的需求
對你的代碼有第二種看法,你應該得到大小= 0 – morgano
這應該不會給你一個NullPointerException。請構建一個證明這一點的[最小測試用例](http://sscce.org)。 –
請向我們展示更多的代碼行。不能給你nullpointer異常 – vikiiii