/** * Returns a representation of {@code a} as an instance of type {@code B}, using * the type system (and not null checks) to ensure that input and output are non-null. */ public final B convertNonNull(A a) { return requireNonNull(doForward(requireNonNull(a))); }
@Nullable B correctedDoForward(@Nullable A a) { return a == null ? null : requireNonNull(doForward(a)); }