真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java8中java.util.Optional如何使用

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Java 8中java.util.Optional如何使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

10多年的滄縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整滄縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“滄縣網(wǎng)站設(shè)計”,“滄縣網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

Optional 主要用來判斷是否為空,在Optional之前,我們只要使用StringUtils的工具類來判斷傳入的參數(shù)是否為空?,F(xiàn)在我們可以使用 Optional 來替代它了。

Java 8中java.util.Optional如何使用

Optional.of(Object object)

Optional.of(Object object):入?yún)bject不能為空,否則會拋出空指針異常。它最終調(diào)用的是Objects.requireNonNull方法。

1

2

3

4

5

public static T requireNonNull(T obj) {

    if (obj == null)

        throw new NullPointerException();

    return obj;

}

Optional.ofNullable(Object object)

Optional.ofNullable(Object object):入?yún)bject可以為空,如果object不為空,就創(chuàng)建一個Optional實(shí)例;如果object為空就返回一個static fainal的Option對象,注意這里不會新建Option實(shí)例,而是使用一個static final的實(shí)例EMPTY,這里比較有意思的是泛型的問題,例如我需要兩個Optional對象,類型分別是String和Integer。

1

2

Optional optionalStr = Optional.ofNullable(null);

Optional optionalInt = Optional.ofNullable(null);

類型不同又如何保證返回同一個對象呢?直接看ofNullable的源碼,發(fā)現(xiàn)會調(diào)用empty方法:

1

2

3

4

5

public static Optional empty() {

    @SuppressWarnings("unchecked")

    Optional t = (Optional) EMPTY;

    return t;

}

原來是通過強(qiáng)制轉(zhuǎn)換實(shí)現(xiàn)的,再看EMPTY對象:

1

private static final Optional EMPTY = new Optional<>();

Optional.empty()

Optional.empty():就是上面分析Optional.ofNullable的時候用到的empty方法,直接返回一個static final的實(shí)例EMPTY;

Optional.of()方法的用法有點(diǎn)像斷言,對象為空的時候代表著某種業(yè)務(wù)上不可接受的異常,需要盡早處理,并且業(yè)務(wù)拒絕執(zhí)行,這種場景下可以使用Optional.of;

下面來一起看一個例子。

User 實(shí)體類代碼如下:

1

2

3

4

5

6

7

8

9

10

11

public class User {

    private int id;

    private String name;

    private int age;

    public User(int id, String name, int age) {

        this.id = id;

        this.name = name;

        this.age = age;

    }

}

用Optional來避免空異常問題。

1

2

3

4

5

6

public User getStudent(int id){

    User user = null;

    Optional optional = Optional.ofNullable(user);

    return optional.orElse(DEFAULT);

}

orElse方法可以指定一個value為空時的返回對象,如果這個對象需要調(diào)用方法才能獲取(例如我們拿不到DEFAULT對象,要通過getDefault()方法才能拿到),這是就需要orElseGet方法來達(dá)到目的,如下:

1

2

3

4

5

6

7

8

9

private User getDefault(){

    return DEFAULT;

}

public User getStudent(int id){

    User user = null;

    Optional optional = Optional.ofNullable(user);

    return optional.orElseGet(() -> getDefault());

}

上述就是小編為大家分享的Java 8中java.util.Optional如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享名稱:Java8中java.util.Optional如何使用
鏈接地址:http://weahome.cn/article/pjedeh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部