interface Predicate<T> {}
class Foo {
static void process(Predicate predicate, C context) {}
}
interface I {}
class Bar implements I {
Predicate p;
{
Foo.process(p, new Bar());
}
}
class Bar2 {
void m(Provider provider) {
provider.provide(p());
provider.provide1(1);
}
static class Provider<T> {
void provide(Predicate consumer){ }
void provide1(Integer i) {}
}
Predicate p() {
return null;
}
}
class Bar3<K> {
class Foo<T> {}
void m(Foo rawFoo) {}
void n(Bar3 b, Foo rawFoo) {
b.m(rawFoo);
}
}