2011-10-14 51 views
0

我有計數器的列表,我想檢查計數器的值> 0: 有你在我的代碼的任何建議?使用assertTrue

ArrayList<Integer> list = new ArrayList<Integer>(); 

    int count1=0; 
    int count2=0; 

    for (int i = 0; i <x; i++) 
    { 
    if (action1) 
    { 
     count1++; 
    } 
    if (action2) 
    { 
     count2++; 
    } 
    } 
    list.add(count1); 
    list.add(count2); 

我需要檢查,只有COUNT1是= 0

assertTrue(list>0); ??? 
+3

assertTrue(list.size()> 0)或assertTrue(!list.isEmpty())''怎麼辦? – Thomas

+1

請看看每個不錯的IDE提供的javadoc或代碼完成。這將有助於您更好地瞭解標準API,而不必提問像「如何檢查列表大小」這樣的問題。 – Thomas

回答

2

你忘了大小()調用,它返回的列表對象中元素的個數:

assertTrue(list.size() > 0) 

編輯:

在列表中,您環路和檢查每一個VAL UE列表像這裏面:

for(int y : list) { 
    assertTrue(y > 0); 
} 
+0

編輯到我認爲你真正想要的 –

+0

我需要檢查列表中的每個值是否大於0,並且在執行另一個操作後,我需要檢查count2的值是否等於0? – lola

0

你的意思列表大小比0或列表中的計數器大於大於0?

對於前者將是:

list.size() > 0 

如果它的專櫃,你可以只檢查已添加到列表中的計數器的值。

+0

不,我的意思是,count1和count2的值大於0,如列表給我:[2,5] – lola

+0

編輯你的問題,因爲它不清楚你真的想要什麼 –

+0

我現在更新問題 – lola

0

既然你剛纔添加兩個元素到list沒有一點檢查其大小爲>0

如果你想檢查列表中的所有元素都>0那麼你需要單獨做到這一點:

for (int i : list) { 
    assertTrue(i > 0); 
} 

或者使用Guava

assertTrue(Collections2.filter(list, new Predicate() { 
    public boolean apply(Integer val) { return val > 0; }).count() > 0); 
1

assetrts是java的工作,只有當您通過將-ea傳遞給JVM參數來啓動您的java程序。因此斷言在正常情況下不起作用(除非直到jvm以-ea參數開頭)。在java中聲明僅用於調試目的。在這種情況下,你應該考慮拋出IllegalStateException或其他適當的運行時異常。

相關問題