原创文章,转载请注明
刚用java8不久,很多东西了解的还不很深刻,但是感觉是相当的惊艳。很肤浅的做一个初体验心得吧。
java8的很多东西使得可读性变强了,通过方法的调用替代了很多if,for循环,使得语意一目了然,而且节省了编码工作。
有了optional,再也不用if(xx!=null)的判断了。特别是optional和lambda,stream,map灵活使用。相当的畅快啊。
比如如果实现以下代码
if(authVo!=null){
String id=authVo.getId();
if(id==null)
id="";
List<AuthVo> vos=authMapper.find(id);
if(vos!=null){
for(AuthVo v : vos){
if(v!=null){
return v;
}
continue;
}
return new AuthVo();
}
else
return new AuthVo();
}
else
return new AuthVo();
通过java8的话,只需要这样写
return Optional.ofNullable(authVo).map(v -> {
List<AuthVo> vos=authMapper.find(Optional.ofNullable(v.getId())
.orElse(""));
v=Optional.ofNullable(vos)
.orElse(new ArrayList<AuthVo>())
.stream()
.filter(vo -> vo!=null)
.findFirst()
.orElse(new AuthVo());
return v;
}).orElse(new AuthVo());