国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Guava-Optional(譯)

nifhlheimr / 1734人閱讀

摘要:創建一個指定引用的,若引用為則表示引用缺失,并返回一個。返回包含的實例,該實例必須存在,如果不存在將會拋出異常。說明有三個方法沒有作解釋,主要是擔心相關知識不理解,容易做出錯誤的翻譯,望請諒解

原文地址
譯者

Guava Optional Class

Optional 是一個不可變對象,用來包含一個非null對象。Optional使用absent來表達null值。該類提供了很多實用的方法來處理值是否可用,從而避免對null值進行檢查。

類的聲明

以下是com.google.common.base.Optional 類的聲明:

@GwtCompatible(serializable=true)
public abstract class Optional
   extends Object
      implements Serializable
類的方法 方法和描述

static Optional absent()

創建一個引用缺失的Optional實例。

abstract Set asSet()

返回一個不可變的單例的set集合,如果引用存在,則返回一個只包含一個元素的set集合,否則,返回一個空的不可變set集合。

abstract boolean equals(Object object)

該equals對象屬于Optional類的方法,比較的規則如下:
1.若給予的對象不是Optional及其子類,直接返回false
2.給予的對象是Optional及其子類,則比較改optional中所包含的引用的值。

static Optional fromNullable(T nullableReference)

創建一個指定引用的Optional,若引用為null則表示引用缺失,并返回一個absent()①。

abstract T get()

返回包含的實例,該實例必須存在,如果不存在將會拋出java.lang.IllegalStateException異常。

abstract int hashCode()

返回該實例的哈希碼。

abstract boolean isPresent()

如果Optional包含非null引用實例則返回true。

static Optional of(T reference)

創建一個指定引用的Optional實例,若引用為null則快速失敗。

abstract Optional or(Optional secondChoice)

Returns this Optional if it has a value present; secondChoice otherwise.

abstract T or(Supplier supplier)

Returns the contained instance if it is present; supplier.get() otherwise.

abstract T or(T defaultValue)

如果包含的實例存在,則返回,如果不存在則返回給予的默認值。

abstract T orNull()

如果包含的實例存在則返回該實例,如果不存在則返回null。

static Iterable presentInstances(Iterable>optionals)

Returns the value of each present instance from the supplied optionals,in order, skipping over occurrences of absent().

abstract String toString()

返回實例的字符串表示,默認實現只有兩種表示方法若Optional中包含的引用缺失則返回optional.absent()否則返回optional.of(引用的值)

abstract Optional transform(Function function)

If the instance is present, it is transformed with the given Function; 
otherwise, absent() is returned.

方法繼承

該類所繼承的方法來自類Object:

java.lang.Object
Optional 類實例

使用任何編輯器創建一下程序:

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
Now run the GuavaTester to see the result.

C:Guava>java GuavaTester
See the result.
First parameter is present: false
Second parameter is present: true
10

注①:請看一下來自Guava的部分代碼

public static Optional fromNullable(Object nullableReference)
{
    return ((Optional) (nullableReference != null ? new Present(nullableReference) : absent()));
}

抽象類Optional只有兩個實現類Present和absent,這兩個類分別表示存在以及缺失狀態。調用fromNullable方法
并且指定的引用為null的時候,會調用absent方法,來生成Optional對象,實際上與Optional.absent()一致。

說明:有三個方法沒有作解釋,主要是擔心相關知識不理解,容易做出錯誤的翻譯,望請諒解!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65221.html

相關文章

  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    fxp 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    Tecode 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    VPointer 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    idealcn 評論0 收藏0
  • [][Tkinter 教程14] menu 菜單

    摘要:已獲原作者授權原系列地址簡介一提到這個詞很多人首先想到的是餐館里的菜單雖然餐館菜單和計算機程序中的菜單看起來一點也不像但他們確實有很多共同點在餐館中菜單列舉了所有菜品和飲料在計算機程序中菜單通過圖形界面展示了應用程序可用的命令和功能在用戶界 已獲原作者授權. 原系列地址: Python Tkinter 簡介 一提到menu這個詞, 很多人首先想到的是餐館里的菜單. 雖然餐館菜單和計算...

    joyqi 評論0 收藏0

發表評論

0條評論

nifhlheimr

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<