【发布时间】:2019-06-24 07:55:47
【问题描述】:
我有一个下面的代码库,用于查找任何匹配的对象及其状态失败,实现下面代码的最简化方法是什么
DummyCounter dummyCounter=new DummyCounter();
dummyCounter.setDue("DONE");
dummyCounter.setStatus(1);
DummyCounter dummyCounte1=new DummyCounter();
dummyCounte1.setDue("FAILRUE");
dummyCounte1.setStatus(1);
DummyCounter dummyCounte2=new DummyCounter();
dummyCounte2.setDue("DONE");
dummyCounte2.setStatus(1);
List<DummyCounter> counterList=new ArrayList<DummyCounter>();
counterList.add(dummyCounter);
counterList.add(dummyCounte2);
counterList.add(dummyCounte2);
用法
final Integer integer = counterList.stream()
.filter(customer -> "DONE".equals(customer.getDue()))
.map(DummyCounter::getStatus)
.filter(Objects::nonNull)
.findAny()
.get();
System.out.println(integer);
【问题讨论】:
-
我不认为
.filter(Objects::nonNull)的需要...至少从你的例子来看 -
在这个例子中状态总是设置为
1 -
你最好使用
enum来代替String。这可能会使您免于“失败”之类的拼写错误...
标签: java optimization java-8 java-stream simplify