前言:
当前你们对“java字符串转换double”都比较注重,朋友们都需要学习一些“java字符串转换double”的相关资讯。那么小编也在网摘上网罗了一些关于“java字符串转换double””的相关内容,希望我们能喜欢,看官们一起来学习一下吧!java8的函数式编程中中提供了Optional 类型, 旨在帮助用户规避NEP, 如果stram中的值都为0,
Optional提供了很多方法让用户自己觉得要怎么办?
看下这段代码
调用isPresent返回值决定输出
public final static Function<List<FileCheckOut>, Double> getAverageDefectCntFunction = (ruleResults) -> { if (ruleResults.isEmpty()) { return 0.0000; } OptionalDouble a = ruleResults.stream().parallel() .mapToDouble(p -> p.getDefectCnt()).average(); logger.info("[getAsDouble---->]" + a.toString()); if (a.isPresent()){ return a.getAsDouble(); }else { return 0.0000; } };
防止NPE的功能
如果要用optional来避免NPE,则需要改造getter方法
public class User { private Address address; public Optional<Address> getAddress() { return Optional.ofNullable(address); } // ..}public class Address { private Country country; public Optional<Country> getCountry() { return Optional.ofNullable(country); } //.. }
之前的代码
if (user != null) { Address address = user.getAddress(); if (address != null) { Country country = address.getCountry(); if (country != null) { String isocode = country.getIsocode(); if (isocode != null) { isocode = isocode.toUpperCase(); } } }}
一大堆判空处理,使用option之后是这样的
@Testpublic void whenChaining_thenOk() { User user = new User("anna@gmail.com", "1234"); String result = Optional.ofNullable(user) .flatMap(u -> u.getAddress()) .flatMap(a -> a.getCountry()) .map(c -> c.getIsocode()) .orElse("default"); assertEquals(result, "default");}
optiondouble的实现方法
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java字符串转换double