JAVA:如何检查对象数组中的所有对象是否是子类的对象?

ine*_*tom 2 java arrays

我有一个带对象的数组.现在我想检查所有这些对象是否是MyObject的实例.

有没有比这更好的选择:

boolean check = true;
for (Object o : justAList){
  if (!(o instanceof MyObject)){
    check = false;
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

sst*_*tan 6

如果你不喜欢循环,你总是可以在Java 8中这样做:

使用ArrayList

List<Object> justAList = new ArrayList<>();
// Add items here...
return justAList.stream().allMatch(o -> o instanceof MyObject);
Run Code Online (Sandbox Code Playgroud)

使用普通数组

Object[] justAList = new Object[10];
// Set items here...
return Arrays.stream(justAList).allMatch(o -> o instanceof MyObject);
Run Code Online (Sandbox Code Playgroud)

编辑:

如果您想提高代码可读性和/或使其更简洁,上述建议将对您有用.但不要以为它避免了必须执行循环.它仍将执行循环,你只是不会看到它.所以不要指望这比你已经拥有的更好.