mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-25 19:21:16 +07:00
28 lines
534 B
Java
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();
|
|
} |