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

資訊專欄INFORMATION COLUMN

JAVA Optional總結

forsigner / 2346人閱讀

摘要:在中被定義為一個容器類,更確切的說只存一個元素的容器。類結構屬性類中包含兩個屬性類屬性對象屬性屬性用來存放一個為的對象。提高編碼人員對對象重視以及對象時的特殊處理。個人覺得沒有實質性杜絕問題,造成的主要原因是數據不完整性。

Optional在JAVA中被定義為一個容器類,更確切的說只存一個元素的容器。

container object which may or may not contain a non-null value.

Optional類結構 Optional屬性

Optional類中包含兩個屬性:

類屬性:EMPTY

對象屬性:value

EMPTY屬性用來存放一個value為null的Optional對象。
value屬性用來存放非null對象。

Optional方法

Optional的有兩個構造方法,都被private修飾。

private Optional() {
    this.value = null;
}

private Optional(T value) {
    this.value = Objects.requireNonNull(value);
}

無參構造方法用來初始化EMPTY。有參構造方法用來初始化非null對象。

因為構造方法被修飾為私有的,Optional想要實例化對象只能通過類方法調用。Optional提供三個類方法。

empty:返回value為null的Optional對象

of:返回value非null的Optional對象

ofNullable:value的值根據參數是否為null返回對應的Optional對象

public static Optional empty() {
    Optional t = (Optional) EMPTY;
    return t;
}

public static  Optional of(T value) {
    return new Optional<>(value);
}

public static  Optional ofNullable(T value) {
    return value == null ? empty() : of(value);
}

實例方法介紹

方法 參數類型 返回類型 說明
get T value為null拋出NoSuchElementException異常
isPresent boolean value為null則返回false
ifPresent Consumer void 如果Optional實例有值則為其調用consumer,否則不做處理
filter Predicate Optional 如果值存在并且滿足提供的謂詞,就返回包括該值的Optional對象;否則返回一個空的Optional對象
map Function Optional 如果值存在,就對該值執行提供的mapping函數調用,返回Optional對象
flatMap Function> Optional 如果值存在,就對該值執行提供的mapping函數調用,返回非null Optional對象
orElse T T 如果有值則將其返回,否則返回一個默認值
orElseGet Supplier T 如果有值則將其返回,否則返回一個由指定的Supplier接口生成的值
orElseThrow Supplier 如果有值則將其返回,否則拋出一個由指定的Supplier接口生成的異常
總結

Optional類為我們做了什么呢?

代碼中可以省去了ifelse對null對象的判斷。

提高編碼人員對null對象重視以及null對象時的特殊處理。

個人覺得Optional沒有實質性杜絕NPE問題,造成NullPointerException的主要原因是數據不完整性。

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

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

相關文章

  • 使用Optional擺脫NPE的折磨

    摘要:在目前的工作中,我對中的和表達式都使用得很多,之前也寫了兩篇文章來總結對應的知識。為了避免,他們會加很多判斷語句,使得代碼的可讀性變得很差。在后面的開發中,可以使用設計,這樣可以設計出更安全的接口和方法。 showImg(https://upload-images.jianshu.io/upload_images/44770-dfeb2d48d3779723.jpg?imageMogr...

    BDEEFE 評論0 收藏0
  • Java Optional 實踐

    摘要:實踐很簡單的一個類,點開它的源代碼,其中所有的方法都是與相關聯的。從而很好地避免了空指針異常。方法,如果存在,返回包含的值,否則拋出異常。隨便點開一個方法,都會在第一行為不該為的參數進行判斷。 問題描述 在大熱的Spring Boot 2.0中,在將原來的泛型改為了Optional,旨在讓我們的代碼更簡潔。 showImg(https://segmentfault.com/img/bV...

    jaysun 評論0 收藏0
  • 【修煉內功】[Java8] 使用Optional的正確姿勢及序列化問題

    摘要:本文已收錄修煉內功躍遷之路的為解決空的問題帶來了很多新思路,查看源碼,實現非常簡單,邏輯也并不復雜。 本文已收錄【修煉內功】躍遷之路 showImg(https://segmentfault.com/img/bVbrCvp?w=852&h=480); Java8的Optional為解決空的問題帶來了很多新思路,查看Optional源碼,實現非常簡單,邏輯也并不復雜。Stuart Ma...

    Ajian 評論0 收藏0
  • Introducing FP in Java8

    摘要:函數副作用會給程序設計帶來不必要的麻煩,引入潛在的,并降低程序的可讀性。所以只能采用這種曲線救國的方式。則是把這種曲線救國拿到了臺面上,并昭告天下,同時還對提供了一些語法支持。是自由變量,提供執行上下文,觸發閉包執行。 背景 自從2013年放棄了Java就再也沒有碰過。期間Java還發布了重大更新:引入lambda,但是那會兒我已經玩了一段時間Scala,對Java已經瞧不上眼。相比S...

    Prasanta 評論0 收藏0

發表評論

0條評論

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