私は通常、Guava の Precondition メソッドを介して、ほぼすべてのコンストラクターとパブリック メソッドのパラメーターをチェックしています。通常、アサーションを伴うプライベート メソッド パラメーター。ただし、現在、「内部」前提条件チェック、つまりコンストラクター/ファクトリメソッド/一般的なメソッド (パブリック API/アプリケーション API の一部ではない) のチェックをアサーションに置き換えることを考えています。 ? 私はたくさんのチェックをしているので、この方法は少し速いかもしれません;-)
編集:パブリックAPIの一部であってはならないパブリックコンストラクターとファクトリも意味します。たとえば、内部で使用されます:
/**
* Constructor with both, complete and modifying page.
*
* @param complete
* to be used as a base for this container
* @param modifying
* to be used as a base for this container
*/
public NodePageContainer(final @Nonnull NodePage complete,
final @Nonnull NodePage modifying) {
assert complete != null;
assert modifying != null;
mComplete = complete;
mModified = modifying;
}
私が持っていた前にmComplete = checkNotNull(complete);
...しかし、それは別のパッケージのクラスからのみ呼び出され、パブリックAPIの一部であってはなりません. Javaがそのようなクラスの可視性を減らすことを許可するなら素晴らしいでしょう;-)