jdk8新特性 Optional物件的了解使用

2021-09-25 11:34:40 字數 919 閱讀 5408

獲取optional物件

轉換optional值

過濾值除了轉換值之外,optional也提供了過濾值的方法filter(),filter() 接受乙個 predicate 引數,如果測試結果為true,返回測試結果為 true 對應的值。如果測試結果為 false,會返回乙個空的 optional。

optional student=optional.ofnullable(stu2).filter(s->s.getsname()!=null && s.getsname().contains(「s」));

if (student.ispresent())

此時列印出來的結果中存在物件student的值,若contains(「s」))改為contains(「a」)),則此時控制台列印的為空值

看了這麼多現在可以對刪除null檢查(狀態下的非空校驗),替換為optional方法了

public void show(student student)}}

}}

public void showafter()
public void showafter()
備註:將呼叫的flatmap方法改為map方法也可以,使用flatmap方法需要你自己去封裝返回值為optional
private address address;

public optionalgetposition()

所以同樣country屬性也進行了如下修改

private country country;

public optionalgetcountry()

因此我在**中引用了flatmap()方法,具體關於flatmap與map方法的區別,我在下文會繼續講解

JDK8新特性筆記(二) Optional

例子 public class optionaldemo01 else 執行結果 ps2optional chapter1.optional demo.person 12a3a380 optinal物件不為空 chapter1.optional demo.person 12a3a380 0 null...

JDK8新特性之使用Optional避免空指標異常

1 使用optional.of 或optional.ofnullable 來建立optional物件。optional.of 不允許引數為null,optional.ofnullable 允許引數為null。optional optional1 optional.of aaa optional op...

JDK8的新特性

這兩天開始看jdk8的新特性,先看了lembda表示式和stream,就乙個感覺,優雅。趕緊將這兩天的成果總結一下 lembda表示式是乙個簡潔 可傳遞的匿名函式,實現了把 塊賦值給乙個變數的功能 格式就是 parameters expression,需要注意的是 引數可以為空 引數為乙個值得時候,...