波多野结衣 蜜桃视频,国产在线精品露脸ponn,a v麻豆成人,AV在线免费小电影

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了Java可選&t;T&>問題,我這樣做正確嗎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個”壞習慣”,當某些東西不存在時,我會把null拋到其他地方,比如枚舉數。

示例:

private enum Foo {
    NULL(1, null, 2),
    NOT_NULL(3, new Bar(), 4);

    private int a, c;
    private Bar b;

    Foo(int a, Bar b, int c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
}

所以現在我嘗試將我的代碼轉換為使用Optional<T>,就像每個人建議的那樣,但我不確定我這樣做是否正確。

以下是我的代碼(修剪后的枚舉):

public static enum Difficulty { 
    EASY, MEDIUM, HARD
}

public static enum SlayerTasks {
    NONE(0, Optional.empty(), Optional.empty(), Optional.empty()),
    NPC(1, Optional.of(Difficulty.EASY), Optional.of("That one place."), Optional.of(1));

    private int taskId;
    private Optional<Difficulty> difficulty;
    private Optional<String> location;
    private Optional<Integer> npcId;

    SlayerTasks(int taskId, Optional<Difficulty> difficulty, Optional<String> location, Optional<Integer> npcId) {
        this.taskId = taskId;
        this.difficulty = difficulty;
        this.location = location;
        this.npcId = npcId;
    }

    public int getTaskId() {
        return taskId;
    }

    public Difficulty getDifficulty() {
        return difficulty.get();
    }

    public String getLocation() {
        return location.get();
    }

    public int getNpcId() {
        return npcId.get();
    }
}

讓我感到困擾的是參考#get()Foundhere的文檔,其中顯示:

如果此可選參數中存在值,則返回該值,否則引發NoSuchElementException異常。

因此,我認為為了防止出現這種情況,我應該將getter包裝在#isPresent()中,但是我不知道如何返回空。

這是正確的做事方式嗎,還是我錯過了什么?我不是在尋找”解決辦法”,我是在尋找有關效率和適當實踐的信息。

推薦答案

您需要問問自己,如果沒有任何可返回的內容,您希望Getter做什么。

實際上只有四個選項:

    返回空值(但隨后返回到您試圖避免的位置);
    讓您的getter返回Optional<T>而不是T
    如果未設置,則返回默認值;
    引發異常。

我會選擇2,除非對于缺省值應該是什么有一個非常明確的正確答案。只有當客戶端代碼應該總是知道是否有什么東西存在并且只有在有的時候才請求它時,4才是合適的(這將是不尋常的,但不是不可能的)。

這篇關于Java可選&t;T&>問題,我這樣做正確嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:amp gt Java 可選 正確 這樣做
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定