首页 > 编程语言 >学习笔记-Java8新特性-第五节-Optional类

学习笔记-Java8新特性-第五节-Optional类

时间:2023-05-21 23:23:17浏览次数:57  
标签:NPE 第五节 实例 为空 返回值 Optional Java8 指针

Optional类

  • Optional<T>是一个容器类

  • 代表一个值存在或不存在

  • 致力于解决空指针异常问题(NPE)

  • 可以快速锁定发生NPE的位置

  • (这东西真的好用吗?)

常用方法

  • Optional.of(T t)

    • 创建一个Optional实例

    • 不能传入空指针,会报NPE

    • 使用Optional,报空指针了,说明就是这里的问题?

  • get()

    • 获取容器中的值

    • 容器为空会报NPE

  • Optional.empty()

    • 创建了一个空的Optional实例
  • Optional.ofNullable(T t)

    • 创建一个Optional实例

    • 如果传入null

    • 创建一个空的实例

  • isPresent()

    • 判断是否包含值
  • orElse(T t)

    • 不为空,则返回值

    • 为空,则返回指定的值

  • orElseGet(Supplier s)

    • 不为空,则返回值

    • 为空,则返回s获取的值

  • map(Function f)

    • 不为空,对其处理,返回处理后的Optional

    • 为空,返回空Optional

  • flatMap(Function f)

    • 同上

    • 但是要求f的返回值是Optional

标签:NPE,第五节,实例,为空,返回值,Optional,Java8,指针
From: https://www.cnblogs.com/Andl-Liu/p/17419455.html

相关文章

  • 学习笔记-Java8新特性-第六节-接口中的默认方法与静态方法
    接口中的默认方法与静态方法默认方法在接口中可以使用default修饰方法,为方法提供默认实现publicinterfaceMyInterface{defaultvoidgetName(){System.out.println("DEFAULT");}}一般情况下,继承了接口的子类,可以不提供接口的实现类优先......
  • 学习笔记-Java8新特性-第七节-新时间与日期API
    新时间与日期API本地时间类LocalDateLocalTImeLocalDateTime简介人读的时间提供以ISO-8601为标准的日期和时间提供简单的日期或时间并不包含当前的时间信息也不包含与时区相关的信息示例publicvoidtest1(){LocalDateTimelocalD......
  • 学习笔记-Java8新特性-第三节-方法引用与构造器引用
    方法引用与构造器引用什么是方法引用对方法的引用若Lambda体中的内容,已经有方法实现了,我们可以使用该方法的方法引用作为替代已经有方法实现了是指,该方法的参数列表和返回值类型和lambda的一致可以将方法引用理解成Lambda表达式的另外一种表现形式语法格式对象......
  • 学习笔记-Java8新特性-第二节-Lambda表达式
    Lambda表达式Lambda表达式是什么Lambda是一个匿名函数是一段可以传递的代码是一种语法糖使用Lambda可以写出更简洁、更灵活的代码如果要使用Lambda表达式,需要函数式接口的支持Lambda的语法格式基础语法Java8中引入了一个新的操作符->称为箭头操作符或La......
  • java8
    1.编写一个方法,实现冒泡排序(由小到大),并调用该方法packagetest;publicclassccc1{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintx[]={1,3,5,6,7,2};paixu(x);for(inti=0;i<x.length;i++){System.out.println(x[i]);}}publicstaticvoi......
  • java8新特性,stream流简单使用
    //新建测试类@Data@NoArgsConstructor@AllArgsConstructor@EqualsAndHashCodepublicclassAuthor{//idprivateLongid;//姓名privateStringname;//年龄privateIntegerage;//简介privateStringintro;//作品privateList<Book>......
  • Java8 Stream --groupingBy 分组讲解
    本文主要讲解:Java8Stream之Collectors.groupingBy()分组示例Collectors.groupingBy()分组之常见用法功能代码:/***使用java8streamgroupingBy操作,按城市分组list*/publicvoidgroupingByCity(){Map<String,List<Employee>>map=employe......
  • java8 lamda表达式
    list分组1.多字段联合,分组list.stream().collect(Collectors.groupingBy(o->o.getSkuName()+"_"+o.getOeCode(),Collectors.toList()));2.求和计算 Integernum=list.stream().mapToInt(n->n.getNum()).sum();3.分组-排序list.stream().coll......
  • Optional对象的使用
    Optional是一个对象容器,具有以下两个特点:提示用户要注意该对象有可能为null简化ifelse代码1.创建:Optional.empty():创建一个空的Optional实例//返回一个Null的optionalOptionalempty=Optional.empty();Optional.of(Tt):创建一个Optional......
  • Java8中的sort与Comparator、Comparable
    基本含义在Java8中,sort()方法、Comparator接口和Comparable接口是用于对数组或集合进行排序的重要工具,其中Comparator接口适用于自定义比较规则,而Comparable接口适用于定义对象自身的比较规则。假如我们有一个实体类点击查看代码publicclassCoinUserIncome{pr......