第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用于布爾組合的java較短的sytnax

用于布爾組合的java較短的sytnax

富國滬深 2023-08-04 14:44:16
java中有沒有語法可以編寫這段冗長的代碼if(a!=null && b!=null && c!=null)if(a!=null || b!=null || c!=null)變成這樣的東西:if( (a && b && c) != null)if( (a || b || c) != null)如果沒有,是否有可能建議將其作為 java 規(guī)范的語言擴展?
查看完整描述

3 回答

?
有只小跳蛙

TA貢獻1824條經(jīng)驗 獲得超8個贊

您建議的語法在 Java 中無效。

您可以使用Streams,但如果您必須檢查許多變量,它只會比標準語法更簡潔。

例如:

檢查所有引用是否不為空:

if (Stream.of(a,b,c).allMatch(Objects::nonNull)) {

}

檢查至少一個引用不為空:

if (Stream.of(a,b,c).anyMatch(Objects::nonNull)) {

}


查看完整回答
反對 回復 2023-08-04
?
慕雪6442864

TA貢獻1812條經(jīng)驗 獲得超5個贊

是的,我知道java還不支持這個。


另一種選擇是這樣的:


public boolean allNull(Object... objects) {

        boolean isNull = true;

        for (int i = 0; i < objects.length; i++) {

            isNull = isNull && objects[i] == null;

        }

        return isNull;

    }


public boolean anyNull(Object... objects) {

    boolean isNull = false;

    for (int i = 0; i < objects.length; i++) {

        isNull = isNull || objects[i] == null;

    }

    return isNull;

}

并像這樣使用它:


// shortest syntax

var notNull = !allNull(a,b,c); // instead of Stream.of(a,b,c).allMatch(Objects::nonNull)

var notNull = !anyNull(a,b,c); // instead of Stream.of(a,b,c).anyMatch(Objects::nonNull)

哪種解決方案性能更好(更快)?-版本stream.of()還是這個?


但是,在使用 -version 時,我們必須添加兩個實用方法而不是 no stream.of()。


查看完整回答
反對 回復 2023-08-04
?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

我明白你想要什么,但這會讓編譯器的人類感到困惑。如果比較值是booleanor類型怎么辦Boolean?這將成為一場真正的噩夢。


我個人更喜歡要求非空值,因此當其中一個值為空時,程序立即拋出 NPE。這可能會節(jié)省您一些調(diào)試時間,因為這些異常會盡快拋出。


Objects.requireNonNull(a);

Objects.requireNonNull(b);

Objects.requireNonNull(c);

或者只寫一個輔助函數(shù):


public static void requireAllNonNull(Object... objects) {

    for (Object object : objects) {

        Objects.requireNonNull(object);

    }

}

并稱其為:


ObjectUtils.requireAllNonNull(a, b, c);


查看完整回答
反對 回復 2023-08-04
  • 3 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號