首页 > 编程语言 >【java技术总结】java-8新特性:Optional

【java技术总结】java-8新特性:Optional

时间:2022-11-09 09:00:56浏览次数:67  
标签:java isPresent 特性 value2 Integer null Optional

Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

Optional 类的引入很好的解决空指针异常。

实例:

以下实例展示了Optional简化了非空校验和空值处理

import java.util.Optional;
 
public class Java8Tester {
   public static void main(String args[]){
   
      Java8Tester java8Tester = new Java8Tester();
      Integer value1 = null;
      Integer value2 = new Integer(10);
        
      // Optional.ofNullable - 允许传递为 null 参数
      Optional<Integer> a = Optional.ofNullable(value1);
        
      // Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException
      Optional<Integer> b = Optional.of(value2);
      System.out.println(java8Tester.sum(a,b));
   }
    
   public Integer sum(Optional<Integer> a, Optional<Integer> b){
    
      // Optional.isPresent - 判断值是否存在
        
      System.out.println("第一个参数值存在: " + a.isPresent());
      System.out.println("第二个参数值存在: " + b.isPresent());
        
      // Optional.orElse - 如果值存在,返回它,否则返回默认值
      Integer value1 = a.orElse(new Integer(0));
        
      //Optional.get - 获取值,值需要存在
      Integer value2 = b.get();
      return value1 + value2;
   }
}

标签:java,isPresent,特性,value2,Integer,null,Optional
From: https://www.cnblogs.com/blanset/p/16872409.html

相关文章

  • JAVA将文件另存为UTF8格式
    /***@description:将文本文件另存为UTF8格式*@author:bug*@date:2022/11/819:22*@paramfile*@paramsrcFilePath*@retu......
  • Java类与对象
    1:初学JAVA,都知道JAVA是面向对象的编程。笔者这节开始说说类和对象。(实例仅供参考,如若复制粘贴记得修改包名和类名,避免出错)学习JAVA的快捷键,Alt+/代码补全功能,其实此快捷键......
  • Java中的封装,继承,多态
    一,前言​今天总结一下关于Java的三大特性,封装,继承,多态。其实关于三大特性对于从事编程人员来说都是基本的了,毕竟只要接触Java这些都是先要认识的,接下来就系统总结一下。二......
  • JavaWeb期中考试-2021年版(二)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="S.s"%><%@pageimport="Dao.dao"%><%@pageimp......
  • JavaWeb期中考试-2021年版(四)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="S.s"%><%@pageimport="Dao.dao"%><%@pageim......
  • JavaWeb期中考试-2021年版(三)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="S.s"%><%@pageimport="Dao.dao"%><!DOCTYPE......
  • JavaWeb期中考试-2021年版(五)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="S.s"%><%@pageimport="java.util.ArrayLi......
  • JavaWeb期中考试-2021年版(六)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="S.s"%><%@pageimport="Dao.dao"%><%@pageimp......
  • JavaScript基础
    一、JavaScript基础(一)变量和数据类型1、JavaScript介绍​ 1)JavaScript是什么?​ JavaScript是运行在客户端(浏览器)的编程语言,实现人机交互。​ 2)作用​ 网页特效(监听......
  • JAVA 集合知识点整理
    对JAVA集合这部分知识还是应该多了解学习因为常用和常被面,出于两方面原因对其最近又重新学习了一下,整理如一下与大家分享一、java集合可以分为两大阵营Collection和Map......