如果不希望用null參數調用該方法,那麼可以拋出NullPointerException(簡稱NPE),因爲它是輸入!= null的先決條件,並且調用方應該事先對其進行驗證。
/** My method.
* @param input the input, must not be null.
*/
void myMethod(MyClass input){
if (input==null) throw new NullPointerException();
//...
}
扔NPE,不增加你的程序分支計數一個常見的成語是:
void myMethod(MyClass input){
input.getClass(); //NPE if input is null
//...
}
在某些情況下,上述的檢查是在代碼中隱含:
void printLowercase(String input){
System.out.println(input.toLowerCase());
}
避免實現一種失敗的方法,因爲它使得調用者很難知道該方法是否失敗。相反,返回布爾值。
boolean myMethod(MyClass input){
if (input==null) {
//you may log that the input was null
return false;
}
//...
return true;
}
這主要是基於輿論的問題,因此可能被關閉。不過,請查閱馬丁的Clean Code,瞭解關於如何處理這些情況的一篇神奇專着(用Java編寫)。 – 2013-08-17 22:11:03