interface Foo<T,V> {} class Bar<T,V> { Bar(Foo<T,V> foo) {} } class Main { Foo foo; Bar<String,String> bar = new Bar<String,String>((Foo<String, String>) <caret>foo); }