I have a several classes that define as follow :
class A extends Super implements Interface {}
class B extends Super implements Interface {}
I want to create list of these classes. I try the following:
public class C {
List<Class<?>> classes = Arrays.asList((Class<?>) A.class, B.class); // Works
List<Class<? extends Super,Interface>> classes2 = Arrays.asList(A.class, B.class); // Compile Error
List<Class<? extends Super>> classes3 = Arrays.asList(A.class, B.class); // Compile Error
}
What is the right way to write it ? Why the first option works when I make casting only to A ?