0
ストリームとフィルタを使用して以下をどのように表現できますか。ありがとう。フィルタを使用するストリーム内の複数のifs
for (UIDisplayItem uiDisplayItem : uiDisplayItems) {
if ("8929".equals(uiDisplayItem.getProductSpecCharacteristicID())) {
type1 = uiDisplayItem.getValue();
}
if ("5121".equals(uiDisplayItem.getProductSpecCharacteristicID())) {
type2 = uiDisplayItem.getValue();
}
if ("4981".equals(uiDisplayItem.getProductSpecCharacteristicID())) {
type3 = uiDisplayItem.getValue();
}
if ("501".equals(uiDisplayItem.getProductSpecCharacteristicID())) {
type4 = uiDisplayItem.getValue();
}
}
あなたにはありません。これは確実にはるかに大きなコードの一部です。ストリームとフィルタは、コードの行を美しくする魔法の杖ではありません。ここで何をしたいのかを正確に伝える必要があります。 – Tunaki
確かにあなたのようなコードの塊ではありません:私はすでに4つの副作用を数えることができます。 – Tunaki
代わりに 'switch'文を使うことができます。このような比較の必要性を排除するための完全な再設計はずっと推奨されています。 – Holger