Java 中的 xx ≠ null 是什么新語法
奇怪的不等于(≠)
最近,棧長用 IntelliJ IDEA 看源碼時發(fā)現(xiàn):
咦~這是什么鬼?
Java 不等于的寫法不是一直都是 != 么?什么時候可以寫 ≠ 了??
不科學(xué)啊~
以為我是老花眼了,認(rèn)真看了幾遍,覺得應(yīng)該是 IDEA 的特效吧,然后去點(diǎn)那個符號,發(fā)現(xiàn)也還原不了原樣。。。
然后互聯(lián)網(wǎng)網(wǎng)沖浪了一翻,終于被我找到了這個開關(guān):
Preferences > Editor > Reader Mode > Font ligatures
Reader Mode: 用于只讀模式的編輯器設(shè)置。
Font ligatures: ligatures 是 "繩索“、”繃帶" 的意思,F(xiàn)ont ligatures 不就是可以理解為 "字體繃帶" 么,所以 != 被顯示成 ≠ 就不奇怪了。
取消這個開關(guān)后,再來看下上面的源碼:
終于恢復(fù)正常了,這樣看得才舒服。。
Ligatures擴(kuò)展
話說在源碼中可以把 != 被顯示成 ≠,那在正常的代碼編輯器應(yīng)該也能顯示吧?
沒錯??!
棧長在設(shè)置菜單中根據(jù) "ligatures" 搜索,發(fā)現(xiàn)有好幾處設(shè)置 Font ligatures 的地方:
然后打開這個選項(xiàng):
Preferences > Editor > Font > Enable font ligatures
棧長隨便寫了些代碼測試了下:
正常的代碼編輯器也能顯示!
從上面的測試代碼可以看出,我加了個 >=,所以不僅限于不等于,更多的符號可以通過切換這個開關(guān)來看下。
關(guān)閉開關(guān),原生顯示:
打開開關(guān),代替顯示:
我現(xiàn)在再把測試代碼復(fù)制出來:
public class Test { public static void main(String[] args) { int n = 1; if (n != 0) { System.out.println(1); } if (n >= 1) { System.out.println(2); } } }
可以看到,顯示歸顯示,代碼復(fù)制出來還是正常的語法的。
總結(jié)
好了,今天棧長給大家分享了 IDEA 的這個 Font Ligatures 開關(guān),也不知道 IDEA 是在哪個版本中搞了這個默認(rèn)開關(guān),真是讓人無語。。
這個感覺就和 IDEA 中的智能顯示如出一轍:
如上所示,因?yàn)?Java 7 以上泛型類型能夠自動推斷,如果集合接口帶了泛型,集合實(shí)現(xiàn)又帶了泛型,那么集合實(shí)現(xiàn)的泛型會被折疊成 ~ 顯示,鼠標(biāo)放上去或者點(diǎn)擊它就會顯示原生代碼,并且還能提示你集合實(shí)現(xiàn)中的泛型是多余的。
但是很無語,像不等于符號這種卻不能點(diǎn)擊/懸浮顯示原生符號,需要一個硬開關(guān)。
總之,我覺得這個東西的存在根本就沒鳥用,也不是很建議大家使用,最終我就默默地把所有的 Font Ligatures 開關(guān)都關(guān)閉了,不然會混淆視聽。
當(dāng)然,蘿卜白菜各有所愛,有喜歡這種顯示方式的那就是真香定律了。
IDEA 香是香,可能你會說用它要收費(fèi),其實(shí)它也有開源的社區(qū)版本,收費(fèi)的專業(yè)版也很容易申請到激活碼,關(guān)注公眾號Java技術(shù)棧,回復(fù):IDEA,可以閱讀我分享過的獲取正版 IDEA 激活碼的教程,很多粉絲都反饋說輕松得到了,感興趣的都可以去申請,不能太容易了。
最后,如果本文對你有幫助,點(diǎn)個在看鼓勵一下哦!也歡迎分享轉(zhuǎn)發(fā)給更多有需要的朋友~
你還遇到過哪些 IDEA 奇奇怪怪的問題?歡迎分享~
版權(quán)申明:本文系公眾號 "Java技術(shù)棧" 原創(chuàng),原創(chuàng)實(shí)屬不易,轉(zhuǎn)載、引用本文內(nèi)容請注明出處,禁止抄襲、洗稿,請自重,尊重大家的勞動成果和知識產(chǎn)權(quán),抄襲必究。
以上就是Java 中的 xx ≠ null 是什么新語法?的詳細(xì)內(nèi)容,更多關(guān)于Java xx ≠ null 的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot整合SpringSecurity和JWT和Redis實(shí)現(xiàn)統(tǒng)一鑒權(quán)認(rèn)證
Spring Security是一個可以為Java應(yīng)用程序提供全面安全服務(wù)的框架,同時它也可以輕松擴(kuò)展以滿足自定義需求,本文主要介紹了SpringBoot整合SpringSecurity和JWT和Redis實(shí)現(xiàn)統(tǒng)一鑒權(quán)認(rèn)證,感興趣的可以了解一下2023-11-11Springboot+MybatisPlus+Oracle實(shí)現(xiàn)主鍵自增的示例代碼
這篇文章主要介紹了Springboot+MybatisPlus+Oracle實(shí)現(xiàn)主鍵自增的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Java面試官最喜歡問的關(guān)鍵字之volatile詳解
這篇文章主要給大家介紹了關(guān)于Java面試官最喜歡問的關(guān)鍵字之volatile的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Java實(shí)現(xiàn)掃雷游戲詳細(xì)代碼講解
windows自帶的游戲《掃雷》是陪伴了無數(shù)人的經(jīng)典游戲,本文將利用Java語言實(shí)現(xiàn)這一經(jīng)典的游戲,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下2022-05-05詳解在springboot中使用Mybatis Generator的兩種方式
這篇文章主要介紹了詳解在springboot中使用Mybatis Generator的兩種方式,本文將介紹到在springboot的項(xiàng)目中如何去配置和使用MBG以及MBG生成代碼的兩種方式,非常具有實(shí)用價值,需要的朋友可以參考下2018-11-11Java子線程調(diào)用RequestContextHolder.getRequestAttributes()方法問題詳解
這篇文章主要介紹了Java子線程調(diào)用RequestContextHolder.getRequestAttributes()方法問題處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09SpringBoot?自定義starter?yaml提示失效問題及解決方法
在自定義starter后,必不可少會有properties配置參數(shù)需要指定,而在有時又不知道為什么出現(xiàn)這個問題,這篇文章主要介紹了SpringBoot?自定義starter?yaml提示失效問題,需要的朋友可以參考下2022-12-12