大学生毕业设计课题做网站,软件开发模型比较,医生可以自己做网站吗,qq腾讯官网入口说明#xff1a;Optional和Stream一样#xff0c;是Java8引入的特性#xff0c;本文介绍Optional的几个实际用法。Steam流使用#xff0c;参考下面这篇文章#xff1a;
Stream流使用
使用
1.保证值存在 // 1.保证值存在#xff0c;pageNumber#xff0c;pageSizeInte…说明Optional和Stream一样是Java8引入的特性本文介绍Optional的几个实际用法。Steam流使用参考下面这篇文章
Stream流使用
使用
1.保证值存在 // 1.保证值存在pageNumberpageSizeInteger pageNumber null;Integer pageSize null;pageNumber Optional.ofNullable(pageNumber).orElse(1);pageSize Optional.ofNullable(pageSize).orElse(10);System.out.println(pageNumber pageNumber , pageSize pageSize);2.保证值合法 // 2.保证值合法Integer id -1;id Optional.ofNullable(id).filter(e - e 0).orElse(1);System.out.println(id id);// 或不合法时抛出异常id -1;Optional.ofNullable(id).filter(e - e 0).orElseThrow(() - new IllegalArgumentException(id必须大于0));3.避免多次空判断
有时我们想获取一个对象中的对象的对象的值如下 Country country new Country(中国, 100001);Address address new Address(北京, 北京市, 长安街, 北京市长安街, country);Student student new Student(001, 张三, 男, 18, address);学生对象中有地址对象地址对象中有国家对象当我们要获取该学生的国家名称时常规情况我们需要这样 // 3.获取该学生的国家名称if (student ! null) {Address address1 student.getAddress();if (address1 ! null) {Country country1 address1.getCountry();if (country1 ! null) {String name country1.getName();if (name ! null) {System.out.println(name name);} else {System.out.println(未知);}}}}使用Optional就很方便 // 使用OptionalString name Optional.ofNullable(student).map(Student::getAddress).map(Address::getCountry).map(Country::getName).orElse(未知);System.out.println(name name);总结
以上三个例子来自阿里云藏经阁电子书《Java工程师必读手册》P294~295地址如下
电子书《Java工程师必读手册》地址https://developer.aliyun.com/ebook/7780