簡體   English   中英

檢查對象是否為空的更短方法?

[英]shorter way to check if an object is null?

有沒有一種較短的方法來檢查字符串/對象是否為null?

    String str = someMethodThatReturnsStringOrNull(someOthreObject);
    if(str == null) { System.out.println("Empty"); }

例如JS樣式:

    if(str) { System.out.println("Empty"); }

沒有。

Java要求條件語句的表達式必須是boolean型的,或者是自動轉換為boolean型的表達式; 唯一可以轉換的類型是Boolean ,通過拆箱。

除非您使用無意義的短名稱定義方法,否則無法使用更少的字符來完成此操作:

if (n(str)) {   // "n()" requires 3 characters
if (str == null) {  // " == null" requires 8 characters
                    // (remove the whitespace if you want to do it in 6...)

但這些額外的5個字符節省非常多的認知負擔,琢磨“究竟什么是n ?!”,更何況定義和/或進口該方法的其他字符。 另一方面,任何編寫過Java(或者可能是其他語言)的人都可以立即理解== null

str == null准確地傳達了您要測試的內容:該引用為null,而不是空,或者可以轉換為值為零的數字,或其他。

== null還具有有益的編譯時屬性,例如,它將停止使用基本操作數,例如int i = 0; if (i == null) {} int i = 0; if (i == null) {}是一個編譯時錯誤,因為i是基元,因此不能為null ,而if (n(i)) {}是允許的(假設形式參數類型為Object ,則您希望它能最大程度地重復使用),因為i會被裝箱。

Java是一種相當冗長的語言; 還有很多事情比這更冗長。 就個人而言,我什至不會注意到寫== null ,這是我的肌肉記憶的條件。

別擔心,學會愛語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM