我有一个ArrayList
“list”,其中包含一个值true。然而,当我写:如何在处理中从ArrayList中获取布尔值
if (list.get(0)==true)
我得到错误“不兼容的操作对象类型和布尔”。 ArrayList.get()
方法总是返回object
?如果是这样,我怎么能得到boolean
值?
谢谢。
我有一个ArrayList
“list”,其中包含一个值true。然而,当我写:如何在处理中从ArrayList中获取布尔值
if (list.get(0)==true)
我得到错误“不兼容的操作对象类型和布尔”。 ArrayList.get()
方法总是返回object
?如果是这样,我怎么能得到boolean
值?
谢谢。
如果您的列表始终包含布尔值,我建议您键入的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");
}
是的,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
...
}
谢谢大家! ( - : – user1767774
你可以尝试创建一个变种,以验证“如果”声明将是真实的是这样的:
for(int i = 0; i < aList.size();i++){ match = aList.get(i).equals("Red"); System.out.print(match); }
的匹配变量将接收此比较的布尔值。
Regards,
Otacon。
谢谢大家!( - : – user1767774