我得到了一个包含对象的数组。现在我想检查所有这些对象是否都是 MyObject 的实例。
有没有比这更好的选项:
boolean check = true;
for (Object o : justAList){
if (!(o instanceof MyObject)){
check = false;
break;
}
}
最佳答案
如果您不喜欢循环,您可以随时在 Java 8 中执行此操作:
使用ArrayList
List<Object> justAList = new ArrayList<>();
// Add items here...
return justAList.stream().allMatch(o -> o instanceof MyObject);
使用普通数组
Object[] justAList = new Object[10];
// Set items here...
return Arrays.stream(justAList).allMatch(o -> o instanceof MyObject);
编辑:
只有当您想提高代码可读性和/或使其更加简洁时,上述建议才对您有用。但不要认为它可以避免执行循环。它仍然会执行一个循环,只是你看不到它。因此,不要指望它的性能会比您已有的更好。
关于JAVA:如何检查对象数组中的所有对象是否都是子类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142201/