### Question:
MapTo { public static <T> Func1<T, T> only(Predicate<? super T> checker) { return input -> checker.test(input) ? input : null; }  static Func1<T, T> only(Predicate<? super T> checker); static Func1<T, T> forOnly(
            Predicate<? super T>          checker,
            Func1<? super T, ? extends T> mapper); static Func1<T, T> when(
            Predicate<? super T>             checker, 
            Function<? super T, ? extends T> mapper, 
            Function<? super T, ? extends T> elseMapper); static Func1<D, T> firstOf(
            FuncList<Function<? super D, ? extends T>> mappers); @SafeVarargs static Func1<D, T> firstOf(
            Function<? super D, ? extends T> ... mappers); static ToTuple2Func<D, T1, T2> toTuple(
            Func1<? super D, ? extends T1> mapper1,
            Func1<? super D, ? extends T2> mapper2); static ToMapFunc<D, K, V> toMap(
            K key, Func1<? super D, ? extends V> mapper);  }### Answer:
@Test public void testSelectThen() { assertEquals("Result:{ Value: null }", "" + Result.valueOf("Hello").map(only(s -> s.length() < 4))); }