JDK8之Optional新特性
/** * JDK8 Optional * Created by chengbx on 2018/5/28. * Optional<T> 类是一个容器类,代表一个值存在或者不存在,原来用null表示一个值不存在, * 现在Optional可以更好的表达这个概念。并且可以避免空指针异常。 * Optional.of(T t):创建一个 Optional实例 * Optional. empty():创建一个空的 Optional实例 * Optional. ofNullable(T t):若t不为nul1,创建 Optional实例,则创建空实例 * ispresent():判判断是否包含值 * orElse(T t):如如果调用对象包含值,返返回该值,否则返回t * orElseGet( Supplier s):如果调用对象包含值,返返回该值,否则返回s获取取的值 * map( Function f):如如果有值对其处理,并返回处理后的 Optional,否则返回 Optional、 empty * flatMap( Function mapper):与map类似,要求返回值必须是 Optional * */ public class TestOptional { @Test public void test1(){ Optional<Employee> optional = Optional.of(null); Employee emp = optional.get(); System.out.println(emp); } @Test public void test2(){ Optional<Employee> op = Optional.empty(); System.out.println(op.get()); } @Test public void test3(){ Optional<Employee> op = Optional.ofNullable(null); if(op.isPresent()){ System.out.println(op.get()); } Employee emp = op.orElse(new Employee("cbx",18,12000)); System.out.println(emp); Employee emp2 = op.orElseGet(() -> new Employee()); System.out.println(emp2); } @Test public void test4(){ Optional<Employee> op = Optional.of(new Employee( "张三", 18, 9999.99)); Optional<String> op2 = op.map(Employee::getName); System.out.println(op2.get()); Optional<String> op3 = op.flatMap((e) -> Optional.of(e.getName())); System.out.println(op3.get()); } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步