Files
2015-12-02 15:42:02 +01:00

28 lines
534 B
Java

import java.util.function.Consumer;
class Foo {
static <E extends Element> void add(Klass<?> klass, E e, Consumer<E> action) {}
static <T> void bar(Klass<?> k, Method<T> m) {
add(k, m, k::addMethod);
}
}
interface Element {}
interface Method<M> extends Element {}
interface Type<T> {
<M, C extends Type<T>> C addMethod(Method<M> m);
}
interface Klass<T> extends Type<T> {}
//simplified
class Foo1 {
static void bar(Type1<?> k) {
k.addMethod();
}
}
interface Type1<T> {
<C extends Type1<T>> C addMethod();
}