教程 > guava 教程 > 阅读:48

guava optional 类——迹忆客-ag捕鱼王app官网

optional 是用于包含非空对象的不可变对象。 可选对象用于表示没有值的 null。 此类具有各种实用方法,可帮助代码将值处理为可用或不可用,而不是检查空值。


类声明

以下是 com.google.common.base.optional 类的声明

@gwtcompatible(serializable = true)
public abstract class optional
   extends object
      implements serializable

类方法

序号 方法 说明
1 static optional absent() 返回一个不包含引用的 optional 实例。
2 abstract set asset() 返回一个不可变的单例 set,其唯一元素是包含的实例(如果存在); 否则为空的不可变 set。
3 abstract boolean equals(object object) 如果 object 是 optional 实例,并且包含的引用彼此相等或两者都不存在,则返回 true。
4 static optional fromnullable(t nullablereference) 如果 nullablereference 为非空,则返回包含该引用的 optional 实例; 否则返回 absent()。
5 abstract t get() 返回包含的实例,该实例必须存在。
6 abstract int hashcode() 返回此实例的哈希码。
7 abstract boolean ispresent() 如果此持有者包含一个(非空)实例,则返回 true。
8 static optional of(t reference) 返回包含给定非空引用的 optional 实例。
9 abstract optional or(optional secondchoice) 如果存在值,则返回此 optional; 否则 secondchoice 。
10 abstract t or(supplier supplier) 如果存在则返回包含的实例; 否则 supplier.get()。
11 abstract t or(t defaultvalue) 如果存在则返回包含的实例; 否则为默认值。
12 abstract t ornull() 如果存在则返回包含的实例; 否则为空。
13 static iterable presentinstances(iterable> optionals) 按顺序从提供的可选值中返回每个存在实例的值,跳过 absent() 的出现。
14 abstract string tostring() 返回此实例的字符串表示形式。
15 abstract optional transform(function function) 如果实例存在,则使用给定的函数对其进行转换; 否则,返回 absent() 。

方法继承

该类继承了以下类的方法 -

  • java.lang.object

optional 类示例

c:/> guava 中使用我们选择的任何编辑器创建以下 java 程序。

guavatester.java

import com.google.common.base.optional;
public class guavatester {
   public static void main(string args[]) {
      guavatester guavatester = new guavatester();
      integer value1 =  null;
      integer value2 =  new integer(10);
      
      //optional.fromnullable - allows passed parameter to be null.
      optional a = optional.fromnullable(value1);
      
      //optional.of - throws nullpointerexception if passed parameter is null
      optional b = optional.of(value2);        
      system.out.println(guavatester.sum(a,b));
   }
   public integer sum(optional a, optional b) {
      //optional.ispresent - checks the value is present or not
      system.out.println("first parameter is present: "   a.ispresent());
      system.out.println("second parameter is present: "   b.ispresent());
      //optional.or - returns the value if present otherwise returns
      //the default value passed.
      integer value1 = a.or(new integer(0));    
      //optional.get - gets the value, value should be present
      integer value2 = b.get();
      return value1   value2;
   }    
}

验证结果

使用 javac 编译器编译类,如下所示

c:\guava>javac guavatester.java

现在运行 guavatester 以查看结果。

c:\guava>java guavatester

结果如下

first parameter is present: false
second parameter is present: true
10

查看笔记

扫码一下
查看教程更方便
网站地图