/** * Asserts that arguments can be resolved from a method reference when declared on a subclass of * some type. */ public void shouldResolveSubclassArgumentsForMethodRefs() { FnSubclass<String, Integer> fn = Integer::valueOf; assertEquals( TypeResolver.resolveRawArguments(Function.class, fn.getClass()), new Class<?>[] {String.class, Integer.class}); }
/** * Asserts that arguments can be resolved from a lambda expression when declared on a subclass of * some type. */ public void shouldResolveSubclassArguments() { FnSubclass<String, Integer> fn = str -> Integer.valueOf(str); assertEquals( TypeResolver.resolveRawArguments(Function.class, fn.getClass()), new Class<?>[] {String.class, Integer.class}); }