原创文章,转载请注明
刚用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());