[英]JAVA: How to check if all in objects array are objects of a subclass?
我有一個帶對象的數組。 現在我想檢查所有這些對象是否是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);
編輯:
如果您想提高代碼可讀性和/或使其更簡潔,上述建議將對您有用。 但不要以為它避免了必須執行循環。 它仍將執行循環,你只是不會看到它。 所以不要指望這比你已經擁有的更好。
它可能與此特定問題無關,但使用多態而不是在if
條件中檢查類型是一種好習慣。 喜歡
public void handle(MyObject object) {
doSomething
}
public void handle(Object object) {
doSomething
}
handle(o);
根據您的要求,您可以首先使用List<MyObject>
和其他列表及其各自的類型,而不是使用Object
-Array放置所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.