2013-03-28 33 views
1

我有一個ArrayList「list」,其中包含一個值true。然而,當我寫:如何在處理中從ArrayList中獲取布爾值

if (list.get(0)==true)

我得到錯誤「不兼容的操作對象類型和布爾」。 ArrayList.get()方法總是返回object?如果是這樣,我怎麼能得到boolean值?

謝謝。

回答

5

如果您的列表始終包含布爾值,我建議您鍵入的ArrayList布爾

List<Boolean> list = ArrayList<Boolean>(); 

而且現在你可以做你想做的事情了:

if (list.get(0)) 

有關信息:

if (list.get(0)==true)if (list.get(0))和是相同的。

,如果你不能使用泛型,你可以投

if((Boolean) list.get(0)) 
{ 
    System.out.println("OK"); 
} 
+0

謝謝大家!( - : – user1767774

2

是的,ArrayList存儲對象,它不能知道類,除非你使用泛型。

所以你有兩個選擇:泛型或鑄造每個「獲得」。

擁有鑄造:

if (((Boolean)list.get(0))==true) { ... } 

有了泛型,宣佈名單如下:

List<Boolean> list= new ArrayList<>(); 
list.add(true); 

if (list.get(0)) { // list.get(0)==true is unnecesary 
... 
} 
+0

謝謝大家! ( - : – user1767774

2

你可以嘗試創建一個變種,以驗證「如果」聲明將是真實的是這樣的:

for(int i = 0; i < aList.size();i++){ match = aList.get(i).equals("Red"); System.out.print(match); }

的匹配變量將接收此比較的布爾值。

Regards,

Otacon。