https://blog.youkuaiyun.com/BinshaoNo_1/article/details/115934213 相关文章
工作中遇到,就简单记录一下
源代码,按照常规循环:
for (Map.Entry<Object, Object> entry : entrySet){
Equivalence.Wrapper equivalence = (Equivalence.Wrapper) entry.getKey();
String key = equivalence.toString();
boolean equals = str.equals(FieldUtil.getValueField(key));
if (equals){
return ToolUtil.isEmpty(entry.getValue()) ? "" : entry.getValue().toString();
}
}
用java8操作:
Set<Map.Entry<Object, Object>> entrySet = map.entrySet();
//方式一,也可以合成一句
Stream<Object> objectStream = entrySet.stream().filter(entry -> getValueField(((Equivalence.Wrapper) entry.getKey()).toString()).equals(str)).
map(Map.Entry::getValue);
Object o1 = objectStream.filter(a -> null != a && "" != a).findAny().orElse(null);
//奇怪,用这种方式取值竟然报错,没深究,这里记录一下问题
//Object o = objectStream..findAny().orElse(null);
//方式二,要保证getValue的值不为null,要不然报空指针
// Object result = entrySet.stream().filter(entry -> getValueField(((Equivalence.Wrapper) entry.getKey()).toString()).equals(str)).
// map(Map.Entry::getValue).findAny().orElse(null);
return ToolUtil.isEmpty(result) ? "" : result.toString();
以上是转换后的操作和遇到的问题,都记录一下,方便使用