我有4 String
變量:a,b,c,d。java中的短條件
我檢查其中一個是否爲null
,然後是return false
。
,所以我做的:
if(a==null || b ==null || c ==null || d ==null) return false;
有這方面的任何短的路?
(我開始爲java)
我有4 String
變量:a,b,c,d。java中的短條件
我檢查其中一個是否爲null
,然後是return false
。
,所以我做的:
if(a==null || b ==null || c ==null || d ==null) return false;
有這方面的任何短的路?
(我開始爲java)
如果你的方法是這樣的:
public boolean foo() {
String a = "a", b = "b", c = "c", d = "d";
if(a == null || b == null || c == null || d == null) {
return false;
}
return true;
}
然後有一個辦法可以減少代碼。你可以這樣做,而不是:
public boolean foo() {
String a = "a", b = "b", c = "c", d = "d";
return (a != null || b != null || c != null || d != null);
}
但是,如果你有多個字符串來進行測試,比如,10,甚至100,這種策略將需要更少的代碼將是把字符串到一個數組,並使用for-each loop。實際上,下面的方法可以用於任何類型的對象,而不僅僅是字符串。
public boolean containsNullObject(Object... objs) {
// loop through each string
for(Object o : objs) {
if(s == null) { return false; } // return false if string is null
}
// if there was no instance of a null object, return true
return true;
}
如果你不知道的陣列或的for-each循環是什麼,看看這些:
是的,這個'公共布爾containsNullObject(Object ... objs)'是我需要的。謝謝。 – Sonrobby
不,你的解決方案是最簡單的可能。
-您正在使用Non-Short circuit OR
來評估這種情況,我認爲這是最容易和最簡單的情況。
-所以你的解決方案就是它的需求。
似乎這可以用foreach循環和更優雅地表達vararg。它會讀得更好,並讓您輕鬆調試您的語句。
// method only returns true if all strings are non-null
public boolean all(String... strings) {
for(String str : strings) {
if(null == str) {
return false;
}
}
return true;
}
然後,您可以調用它以這種方式:
return all(a, b, c, d); // will return false if any of these are null, otherwise true.
if
是多餘這裏,只需使用return !(a == null || b == null || c == null || d == null);
你想返回TRUE;如果這是不是這樣的? –