[英]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.