成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JAVA Optional總結(jié)

forsigner / 2412人閱讀

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

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

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

Optional類結(jié)構(gòu) Optional屬性

Optional類中包含兩個(gè)屬性:

類屬性:EMPTY

對(duì)象屬性:value

EMPTY屬性用來存放一個(gè)value為null的Optional對(duì)象。
value屬性用來存放非null對(duì)象。

Optional方法

Optional的有兩個(gè)構(gòu)造方法,都被private修飾。

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

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

無參構(gòu)造方法用來初始化EMPTY。有參構(gòu)造方法用來初始化非null對(duì)象。

因?yàn)闃?gòu)造方法被修飾為私有的,Optional想要實(shí)例化對(duì)象只能通過類方法調(diào)用。Optional提供三個(gè)類方法。

empty:返回value為null的Optional對(duì)象

of:返回value非null的Optional對(duì)象

ofNullable:value的值根據(jù)參數(shù)是否為null返回對(duì)應(yīng)的Optional對(duì)象

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);
}

實(shí)例方法介紹

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

Optional類為我們做了什么呢?

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

提高編碼人員對(duì)null對(duì)象重視以及null對(duì)象時(shí)的特殊處理。

個(gè)人覺得Optional沒有實(shí)質(zhì)性杜絕NPE問題,造成NullPointerException的主要原因是數(shù)據(jù)不完整性。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/70728.html

相關(guān)文章

  • 使用Optional擺脫NPE的折磨

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

    BDEEFE 評(píng)論0 收藏0
  • Java Optional 實(shí)踐

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

    jaysun 評(píng)論0 收藏0
  • 【修煉內(nèi)功】[Java8] 使用Optional的正確姿勢及序列化問題

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

    Ajian 評(píng)論0 收藏0
  • Introducing FP in Java8

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

    Prasanta 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<