【從零開始學 Java 程式設計】Java 8 - Optional 處理資料 null 問題

【從零開始學 Java 程式設計】 線上教學課程目錄,使用 Java 程式語言,開發應用程式。

過往常見處理 null 範例

 public void sendMsg(String msg) {
        if (msg != null) {
            System.out.println(msg);
        }
    }

Java 8 - 採用 Optional 處理 null 範例

MyCalc.java

import java.util.Optional;

public class MyCalc {
    public Integer sum(Optional<Integer> x, Optional<Integer> y) {

        // Optional.isPresent - 判斷是否有資料
        if (x.isPresent()) {
            System.out.println("x 資料存在");
        }else{
            System.out.println("x 資料不存在");
        }

        if (y.isPresent()) {
            System.out.println("y 資料存在");
        }else{
            System.out.println("y 資料不存在");
        }

        // Optional.orElse - 如果值存在,返回該值,不存在则返回預設值
        // Optional.get 返回當下資料
        Integer value1 = x.orElse(new Integer(0));
        Integer value2 = x.orElse(new Integer(0));
        return value1 + value2;
    }
}

Main.java

import java.util.Optional;

public class Main {
    public static void main(String[] args) {

        MyCalc myCalc = new MyCalc();
        //Optional.ofNullable 允許資料為 null
        Integer result1 =myCalc.sum(Optional.ofNullable(null), Optional.ofNullable(null));
        System.out.println("result1= " + result1);

        //Optional.of 資料為 null,會發生 NullPointerException
        Integer result2 = myCalc.sum(Optional.of(new Integer(1)), Optional.of(new Integer(2)));

        System.out.println("result2= " + result2);
    }
}


那這次的課程就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。
我們下次再見囉!!!掰掰~

這個網誌中的熱門文章

16天記下7000單字

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)

nano 文字編輯器

【從零開始學 Flutter 程式設計】SharedPreferences 設定檔資料存取