???Java8 Optional?????????
???????????? ???????[ 2016/10/28 11:56:38 ] ??????????????????? JAVA
??????????????: 1. ??????????????????????? Optional.of(obj) ?? obj ??????????? null ??? ????????????? new ?????????(Optional.of(new User(...)))?? ??????????? null ?????; 2. ????? obj ?????? null ??? ????????????? obj ? null ???????? NullPointException ???? ???????? ??????????????????? ??????ù?????? Optional.of(obj) ?????? Optional ????? ???????κβ??????? null ??п??????????? Optional ??.
????????????????????????е? Optional ????? ??????????????? Optional<User> user?? ?????????????? ????? if(user.isPresent()) { ... } else { ... } ??????÷??.
?????????????? ??????????
????return user.orElse(null); //?????? return user.isPresent() ? user.get() : null;
????return user.orElse(UNKNOWN_USER);
?????????????? ???????????????
????return user.orElseGet(() -> fetchAUserFromDatabase()); //????? return user.isPresent() ? user: fetchAUserFromDatabase();
??????????????????
????user.ifPresent(System.out::println);
????//??????±?????
????if (user.isPresent()) {
????System.out.println(user.get());
????}
????map ?????????
?????? user.isPresent() ??棬 ??????????? orders?? ?????????????????? ??????????? orElse?? orElseGet ????????????? ??????? map ?????????Σ? ??????????????
????return user.map(u -> u.getOrders()).orElse(Collections.emptyList())
????//????????????????? Java 8 ????????
????if(user.isPresent()) {
????return user.get().getOrders();
????} else {
????return Collections.emptyList();
????}
????map ??????????????? ??????????? ???????????д???
????return user.map(u -> u.getUsername())
????.map(name -> name.toUpperCase())
????.orElse(null);
???????????????? ?????????????????????? null ????ж?
????User user = .....
????if(user != null) {
????String name = user.getUsername();
????if(name != null) {
????return name.toUpperCase();
????} else {
????return null;
????}
????} else {
????return null;
????}
??????????? Groovy ???????????????/????????????? ?.
????user?.getUsername()?.toUpperCase();
????Swift ???????????? ??????? Optional ????????.
???????? isPresent() ???? NullPointerException ????????? ???? orElse?? orElseGet ??? ????? map ???????????.
?????????????? filter() ????????????????? empty()?? flatMap() ?????? map() ????????? orElseThrow() ????????????? ??????????????.
??????仰С??: ??? Optional ????????????? Optional.get() ?????? Optional.isPresent() ??????????????з????? ????????????? Optional.orElse()?? Optional.orElseGet()?? Optional.map() ???????????.
?????? ?????? Java 8 Optional ?????ī?????????????? java.util.Optional?? ???????????????????????????????????е????? Optional ??????л?????????????? isPresent() ?ж?? ?????????? ??????????.
???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????
??????
Java???????????Щ???????????????Java????????????????Java?б???Map????????Java Web???????????????Java??????????????д?????Java????????7???????????????????????(java .net ?????)???Java??????????Python??????Java webdriver??λ????????′????е?????Java??д??????????????????Java???????????????JavaScript????????????Java?????????????????? Java???????10??????????????Java?м????????????????java???????ü???????????м???????????????????
![](/images/ad-banner/ad-banner.png)
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11????????
?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????е????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????