1*f0340d8eSSorin Bascaclass Main { 2*f0340d8eSSorin Basca 3*f0340d8eSSorin Basca class Foo { } 4*f0340d8eSSorin Basca 5*f0340d8eSSorin Basca interface GenericBase <F> { } 6*f0340d8eSSorin Basca 7*f0340d8eSSorin Basca class GenericDerived <F extends Foo> implements GenericBase<F> { } 8*f0340d8eSSorin Basca 9*f0340d8eSSorin Basca private <B extends Foo> void foo(GenericBase<B> g) { } 10*f0340d8eSSorin Basca 11*f0340d8eSSorin Basca private <D extends Foo> void foo(GenericDerived<D> g) { } 12*f0340d8eSSorin Basca 13*f0340d8eSSorin Basca void bar() { 14*f0340d8eSSorin Basca GenericDerived<Foo> gd = new GenericDerived<>(); 15*f0340d8eSSorin Basca foo(gd); 16*f0340d8eSSorin Basca } 17*f0340d8eSSorin Basca}