ObjectLibrary { public static <T> Function<T, T> methodYourself() { return new Function<T, T>() { @Override public T outputFor(T value) { return value; } }; }  static Function<T, String> methodToString(); static Function<U, T> methodIdentity(final T object); static Function<T, T> methodYourself();  }
@Test public void methodYourselfReturnsArgument() { for (Object object : asList(1, 2, true, "AAA", 'c')) { assertTrue(object == methodYourself().outputFor(object)); } }