2016-11-18 36 views
1

我只是想知道的Java 8,這是很酷的全部,流概念的最好下列環路,在那裏我打電話由於對象的類型具體方法:java 8的流優先用於帶有instanceof檢查的循環嗎?

for (EObject sel : selection) { 
    if (sel instanceof A) { 
    doSomethingWithA(); 
    } else if (sel instanceof B) { 
    doSomethingWithB(); 
    } 
} 

請問你建議在這裏使用流API,如果是的話,你會怎麼意識到它?

+5

簡單地說:沒有。這不是'instanceof'檢查的存在,而是您爲每個元素執行此操作都有一個簡單的事實,這種循環在將操作放入Stream使用時不會變得更簡單也更不可讀。 – Holger

回答

2

由於Holger表示,您的流將是一個帶有副作用的管道,因此使用傳統的for循環很乾淨。

如果你有興趣在如何編寫看上instanceof可以使用

someList.stream().filter(A.class::isInstance).forEach(A::doSomeThing);