code: public static <T, R, E extends Exception> Nullable<R> ifOrEmpty(final boolean b, final T init, final Try.Function<? super T, R, E> func) throws E {
          if (b) {
              return Nullable.of(func.apply(init));
          } else {
              return Nullable.empty();
          }
      }
docs: Returns a {@code Nullable} with value returned by {@code func.apply(init)} if {@code b} is {@code true},
  otherwise returns an empty {@code Nullable} if {@code b} is false.
  
  @param b
  @param init
  @param func
  @return
  @throws E