这篇文章给大家介绍可选怎么中Java8项目中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Java的特点有哪些
Java的特点有哪些 1. java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2. java具有简单性,面向对象,分布式、安全性,平台独立与可移植性,动态性等特点。 3.使用Java可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序等。
API介绍
可选的所有的方法如下图所示,这些API大致可以分为以下几类:
1,构建API:构建一个可选的对象,方法有:空(),(),ofNullable ();
2,获取API:获取可选的对象里包装的值;方法有:获得(),orElse (), orElseGet (), orElseThrow ();
3,转换API:将可选的对象里包装的值转换成一个新的值;方法有:地图(),flatMap ();
4,判断API:对可选的对象里包装的值做一些逻辑判断;方法有:过滤(),isPresent (), ifPresent ();
@ data @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode @ToString public class  UserInfo { ,private String 用户名; ,private String 密码; ,private Integer 年龄; ,private String 性别; }
<>强构建类强>
@test ,public void  testBuildOptional (), {//,才能构建一个值为零的可选的对象; Optional<才能;UserInfo>, userInfoEmptyOpt =, Optional.empty ();//,才能构建一个价值不可以为零的可选的对象,如果的()的入参为null会报空指针异常; Optional<才能;UserInfo>, userInfoOpt =, Optional.of (new 用户信息(“阿飞“,“123456“,,15日,“man"));//,才能构建一个价值可以为零的可选的对象; Optional<才能;UserInfo>, userInfoNullOpt =, Optional.ofNullable(空); System.out.println才能(userInfoEmptyOpt); System.out.println才能(userInfoOpt); System.out.println才能(userInfoNullOpt); ,,//,,输出如下://,Optional.empty//,,可选[用户信息(用户名=阿飞,,密码=123456,,=15岁,性别=))//,Optional.empty 以前,}><强>获取类强>
@test ,public void  testGetOptionalValue (), { Optional<才能;UserInfo>, userInfoEmptyOpt =, Optional.empty (); Optional<才能;UserInfo>, userInfoOpt =, Optional.of (new 用户信息(“阿飞“,“123456“,,15日,“man"));//,才能直接获取,注意如果value=https://www.yisu.com/zixun/=null,会报NoSuchElementException异常 用户信息userInfo1=userInfoOpt.get ();//orElse可以传入一个用户信息类型的对象作为默认值;当价值!=null时,返回值值;当值==null时,返回默认值作为代替; 用户信息userInfo2=userInfoEmptyOpt。orElse(新用户信息(“阿飞1 "," 123456 ",15日,“男人”));//orElseGet和orElse不同的是orElseGet可以传入一段λ表达式;当价值!=null时,返回值值;当值==null时,使用该λ返回的对象作为默认值; 用户信息userInfo3=userInfoEmptyOpt.orElseGet(() ->新用户信息(“阿飞2”,“123456”,15日,“男人”));//orElseThrow可以传入一段λ表达式,λ返回一个例外,当价值!=null时,返回值值;当值==null时,抛出该异常; 用户信息userInfo4=userInfoOpt.orElseThrow (NullPointerException::新); System.out.println (userInfo1); System.out.println (userInfo2); System.out.println (userInfo3); System.out.println (userInfo4);//输出如下://用户信息(用户名=阿飞,密码=123456=15岁性别=男人)//用户信息(用户名=阿飞1,密码=123456=15岁性别=男人)//用户信息(用户名=阿飞2密码=123456=15岁性别=男人)//用户信息(用户名=阿飞,密码=123456=15岁性别=男人) }<>强转换类强>
@test ,public void  testMapOptionalValue (), { Optional<才能;UserInfo>, userInfoOpt =, Optional.of (new 用户信息(“阿飞“,“123456“,,15日,“man"));//才能,原来值的类型是用户信息,经过地图转换为OptionalOptional<才能;String>, username =, userInfoOpt.map(用户信息::getUsername);//才能,当地图的入参也是一个可选时,经过地图转化后会形成Optional 可选怎么中Java8项目中使用