優雅解決空指標異常 Optional

2021-10-07 03:58:00 字數 2543 閱讀 6049

- 所以如何獲取optional物件?—>使用of(t value)和ofnullable(t value)方法

of(t value)方法中value是任意型別但是不能為null;

ofnullable(t value)方法value也是任意型別,但是可以為null;

optional

optional = optional.

ofnullable

(null)

; optional

optionala = optional.

ofnullable(""

);optional

optionalb = optional.

ofnullable(1

);optional

optionalc = optional.

ofnullable

(new

date()

);optional

optional1 = optional.of(

""); optional

optional2 = optional.of(

1); optional

optional3 = optional.of(

newdate()

);

optional

optional = optional.

ofnullable

(null)

; optional

optionalb = optional.

ofnullable(1

);system.out.

println

(optional.

ispresent()

);//false

system.out.

println

(optionalb.

ispresent()

);//true

執行以下**,控制台會列印–>optionalb 不為null

optional

optional = optional.

ofnullable

(null)

; optional

optionalb = optional.

ofnullable(1

);optional.

ifpresent

(new

consumer()

}); optionalb.

ifpresent

(new

consumer()

});

empty() 返回乙個空的optional物件

optional empty = optional.

empty()

; optional empty1 = optional.

empty()

; system.out.

println

(empty.

tostring()

==empty1.

tostring()

);

orelse(value),如果optional物件裡面的值為null,返回value;否則返回optional裡面的值

optional optional = optional.

ofnullable

(null);

optional optionalb = optional.

ofnullable(1

);system.out.

println

(optional.

orelse(2

)==1)

;//false

system.out.

println

(optionalb.

orelse(2

)==1)

;//true

orelseget(supplier<? extends t> other) 和orelse(value)一樣,只是orelseget的引數是乙個物件

optional optional = optional.

ofnullable

(null);

optional optionalb = optional.

ofnullable(1

);system.out.

println

(optional.

orelseget((

)->)==

1);//false

system.out.

println

(optionalb.

orelseget((

)->)==

1);//true

解決dubbo空指標異常

今天做了乙個簡單的dubbo案例,但是通過頁面訪問的時候,控制台一直報空指標異常,一開始是以為沒有寫service層的註解,但是事實上我是寫了的,如下 import com.alibaba.dubbo.config.annotation.service import com.dubbo.servic...

空指標異常記錄

空指標異常是指 當應用程式試圖在需要物件的地方使用 null 時,丟擲該異常。也就是你沒有建立這個物件,你卻呼叫他,或者呼叫他的方法,或者訪問 修改他的屬性,這時會丟擲乙個空指標異常。我這兩天遇到的問題是,我傳入乙個為null的屬性,或者沒有傳入必要屬性,就會在return的地方報乙個空指標異常。注...

Android context空指標異常

fragment中的 context 是null public class placeholderfragment extends fragment 這樣定義的context是null。當然咯,我實際 不是這樣寫的,可是這個意思。假設是在activity中就不會是空。在fragment中就是null...