我們應該總是在第一行檢查java中的方法的每個引數為null嗎?
每個方法都接受一組引數值.我們是否應該始終驗證輸入引數的非空值,或者允許程式碼失敗並使用經典的RunTimeException?
我看到很多程式碼,人們並沒有真正檢查輸入引數的無效性,只是使用引數編寫業務邏輯.什麼是最好的方法?
void public( String a, Integer b, Object c) { if( a == null || b == null || c == null) { throw new RunTimeException("Message..."); } .....business logic..... }
最好的方法是隻在必要時進行檢查.
例如,如果你的方法是私有的,那麼你知道沒有人在使用它,而且你知道你沒有傳遞任何空值,那麼沒有必要再次檢查.
如果您的方法是公開的,誰知道您的API的使用者將嘗試和做什麼,那麼更好的檢查.
如有疑問,請檢查.
然而,如果你能做的最好,會丟擲一個NullPointerException,然後可能不想檢查.例如:
int getStringLength(String str) { return str.length(); }
即使你檢查了null,一個合理的選項將丟擲一個NullPointerException,str.length()將為你做任何事情.
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/5172948/should-we-always-check-each-parameter-of-method-in-java-for-null-in-the-first-li