Guava學習(一):Optional

Guava學習(一):Optional

Optional對象中的主要方法如下:
Optional方法描述
例子:

package com.bluedragon.guavalearning.optional;

import com.google.common.base.Optional;

/**
 * @author CodeRush
 * @date 2019/7/27 20:39
 */
public class OptionalTest {

    public static void main(String[] args) {
        //Optional.of(T) ) 創建指定引用的Optional實例, 若引用爲null則快速失敗 optional:可選的
        Optional<Integer> possible = Optional.of(5);
        //present:存在
        System.out.println(possible.isPresent());  //true
        //返回Optional所包含的引用, 若引用缺失, 則拋出java.lang.IllegalStateException
        System.out.println(possible.get()); //5
        //含有默認值的返回,如果爲null返回or中的值,否則直接返回引用值
        System.out.println(possible.or(1)); //5
        //Set<T> asSet()) 返回Optional所包含引用的單例不可變集, 如果引用存在, 返回一個只有單一元素的集合,
        // 如果引用缺失, 返回一個空集合。
        System.out.println(possible.asSet()); //[5]

        try {
            Optional<Object> nullOptionalOf = Optional.of(null); //of接收到null會快速失敗
        } catch (Exception e) {
            System.out.println("引用爲null則快速失敗,Optional.of快速失敗率,不會創建成功");
            e.printStackTrace();
        }

        //Optional.absent()) 創建引用缺失的Optional實例 absent:不存在
        Optional<Object> nullOptional = Optional.absent();
        System.out.println(nullOptional.isPresent()); //false
        System.out.println(nullOptional.or("值爲null")); //值爲null
        System.out.println(nullOptional.orNull());//null
        System.out.println(nullOptional.asSet()); //[]

        //Optional.fromNullable(T)) 創建指定引用的Optional實例, 若引用爲null則表示缺失
        Optional<Object> nullableOptional = Optional.fromNullable(null); //從允許null的對象生成
        try {
            System.out.println(nullableOptional.get()); //爲null的話get方法就會拋出異常,可以使用orNull或者or(null)
        } catch (Exception e) {
            System.out.println("get到null值拋出異常");
            e.printStackTrace();
        }
   	}
   	
}

到了java8的時候,jdk中已經將Optional集成進來了,使用方法基本都類似,所以使用java8的話,可以不用guava的Optional了,後面要說的Ordering也一樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章