class A{ interface A<T>{} class MyGenericClass1<T> implements A<T>{} class MyGenericClass2<T> implements A<T>{} class MyGenericClass3<T> implements A<T>{} { A<String> a = new <caret>asjdgjh<Object> } }