たとえば、DAO オブジェクトの 1 つの内部でメソッドを記述し、このメソッドが特定の入力を受け入れないようにする場合は、議論のために、null 引数を許可しないとします。この方法が新しいチームメンバーによって将来再利用される可能性があることを考慮して、どのように実装しますか。
私がそれを行う方法は次のとおりです。
- インターフェイスでは、引数 a、b、および c を null にすることはできないことをメソッド javadoc 内に文書化しています。
- メソッド内で最初に null 値をチェックし、a、b、または c のいずれかが null の場合、IllegalArgumentException をスローします。
しかし、将来、一部の開発者がメソッドのシグネチャを読み取って、必要なものであると判断し、この詳細に注意を払わずに使用を開始し、さらに悪いテストを行ってもそれが明らかにならない場合はどうなるでしょうか。NULL ポインター例外は発生せず、有用なエラー メッセージが表示されますが、本番環境では回避できたはずのエラーが引き続き表示されます。
コンパイル時にこれを強制する方法はありますか? 私はそれを疑っていますが、これを行うための最も安全で、最も悪い開発者に耐えられる方法は何でしょうか?