9
自然に発生させるのではなく、明示的にNullPointerExceptionをスローするのはなぜですか?
JDKソースコードを読むとき、作成者がパラメーターがnullかどうかを確認し、新しいNullPointerException()を手動でスローすることがよくあります。なぜ彼らはそれをするのですか?メソッドを呼び出すと新しいNullPointerException()がスローされるので、そうする必要はないと思います。(たとえば、HashMapのソースコードは次のとおりです:) public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) { if (remappingFunction == null) throw new NullPointerException(); Node<K,V> e; V oldValue; int hash = hash(key); if ((e = getNode(hash, key)) != null && (oldValue = e.value) != null) { V v = remappingFunction.apply(key, oldValue); …