java查找ArrayList中的对象是否有特定字段
我试图找出ArrayList中的一个对象是否有一个具有特定值的特定字段。我想这样做,只使用ArrayList,而不是N个单独的对象:
SomeObject o1 = new SomeObject();
SomeObject o2 = new SomeObject();
...
SomeObject oN = new SomeObject();
boolean running = true;
while (running)
{
//Do stuff
running = o1.booleanField || o2.booleanField || ... || oN.booleanField;
}
我认为可以用for each循环来实现,但我不确定如何实现。如果我说的有道理,请回答
# 1 楼答案
当你说,
Object o1 = new Object();
你不是在说java.lang.Object
,对吗?因为java.lang.Object
的字段是在javadoc
中定义的,您不能要求某种类型的booleanfield
,所以它将不存在如果
ArrayList
包含几种类型的对象,则可以使用instanceof
或.getClass()
来知道该类对象所属如果
ArrayList
只包含一种对象,请查看@Mena的答案# 2 楼答案
假设是单线程场景,您应该:
ArrayList
的类型,而不是使用Object
while
循环,而是使用for
或增强的for
循环来迭代ArrayList<YourObject>
,当任一元素具有boolean
属性的所需值时,通过调用其getter来中断以下是主类中的一些草稿代码: