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

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

性能影響,如果我寫 assert(!MyClass.desiredAssertions)

性能影響,如果我寫 assert(!MyClass.desiredAssertions)

慕田峪9158850 2021-08-13 17:00:03
我喜歡使用 assert 語句,只要我能正確停用它們。我聽說如果在 if 語句中包裝斷言,編譯器基本上會將它們刪除,因此它們沒有影響。if (MyClass.class.desiredAssertionStatus(){assert(xyz==true)}然而,Intellij 總是建議“簡化”我的陳述如下:assert(!MyClass.class.desiredAssertionStatus() || xyz==true);我想知道,intellij 建議是否真的會對性能產(chǎn)生影響,即編譯器是否不再識別以刪除它們?
查看完整描述

2 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗 獲得超7個贊

使用啟動標(biāo)志在 JVM 級別啟用和禁用斷言。當(dāng)禁用它們時,JVM 基本上會跳過它們,并且不會對性能產(chǎn)生影響。

因此,您不需要 if 語句。


查看完整回答
反對 回復(fù) 2021-08-13
?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗 獲得超3個贊

你的陳述


if (MyClass.class.desiredAssertionStatus(){assert(xyz==true)}

看起來很復(fù)雜,intellij 的建議忽略了你最有可能應(yīng)該寫的只是


assert xyz;

請注意,這等效于


if (CurrentClass.class.desiredAssertionStatus()) {

    if (!xyz) throw new AssertionError(...);

}

(除非您像 Holger 指出的那樣動態(tài)更改斷言狀態(tài)),因此您要檢查斷言狀態(tài)兩次。當(dāng)MyClass是當(dāng)前類時,這是完全多余的,否則可能是荒謬的。



查看完整回答
反對 回復(fù) 2021-08-13
  • 2 回答
  • 0 關(guān)注
  • 281 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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