我有一个ArrayList
“列表”,它包含一个值,true。但是,当我写:
if (list.get(0)==true)
我收到错误“不兼容的操作数类型对象和布尔值”。ArrayList.get()
方法总是返回吗object
?如果是这样,我怎样才能获得boolean
价值?
谢谢。
我有一个ArrayList
“列表”,它包含一个值,true。但是,当我写:
if (list.get(0)==true)
我收到错误“不兼容的操作数类型对象和布尔值”。ArrayList.get()
方法总是返回吗object
?如果是这样,我怎样才能获得boolean
价值?
谢谢。
如果您的列表始终包含布尔值,我建议您将数组列表键入为布尔值
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 存储对象并且它不知道类,除非您使用泛型。
所以你有两个选择:泛型或强制每个“get”。
带铸造:
if ( ((Boolean)list.get(0))==true ) { ... }
使用泛型,将列表声明为:
List<Boolean> list= new ArrayList<>();
list.add(true);
if (list.get(0)) { // list.get(0)==true is unnecesary
...
}
您可以尝试创建一个 var 来验证“if”语句是否为真,如下所示:
for(int i = 0; i < aList.size();i++){
match = aList.get(i).equals("Red");
System.out.print(match);
}
匹配变量将接收此比较的布尔值。
问候,
奥塔康。