import java.util.Collection; import java.util.List; class Idea { class Library { public void f(Base x) { } public void f(Derived x) { } } class Wrapper { } class Base { } class Derived extends Base { } public void main(Derived> x) { new Library>().f(x); } }