2013-07-24 63 views
0

我有類似這樣的代碼:如何獲取初始化ArrayList的size()?

ArrayList<SomeType> toGetSizeOf = new ArrayList<SomeType>(); 
int size = toGetSizeOf.size(); 

但是,第二行是給我一個NullPointerException。有什麼方法可以避免這種情況,基本上可以告訴ArrayList是否已經初始化,但還沒有添加任何東西? (我有一個if/else聲明依賴於此)。

在此先感謝!

+0

對你的代碼有第二種看法,你應該得到大小= 0 – morgano

+0

這應該不會給你一個NullPointerException。請構建一個證明這一點的[最小測試用例](http://sscce.org)。 –

+0

請向我們展示更多的代碼行。不能給你nullpointer異常 – vikiiii

回答

2

我想也許別的東西在你的代碼中是錯誤的。

下正常工作:

ArrayList<String> toGetSizeOf = new ArrayList<String>(); 
int size = toGetSizeOf.size(); 
System.out.println(size); 

其中給出0

調試代碼,並檢查什麼實際上是空。我懷疑這是你的toGetSizeOf。

0

如果你有一個NullPointerException,那麼你應該檢查它首先

您可以使用...

int size = 0; 
if (toGetSizeOf != null) { 
    size = toGetSizeOf.size(); 
} 

或...

int size = toGetSizeOf == null ? 0 : toGetSizeOf.size(); 

,你也可以的問題使用ArrayList#isEmpty,如果列表爲空(size == 0)或,則返回boolean 如果它不是,根據您的需求