Java generic type arguments
generics, java
Solution
From an answer by the user called Romain " If you use < ?>, you mean you aren't going to use the parametrized type anywhere. Either go to the specific type (in your case it seems List< String>) or to the very generic List< Object> "
Also, I believe that if you use the question mark the compiler wont catch type mismatches until runtime (reified; p.119 of Effective Java), bypassing erasure, and effectively elimating the benefit you get from using generic types???
TO answer the question of the questioner: if you use List< Object> and then try to cast it to A or to B , possibly using instanceOf , that might be a way to tell what it is. I bet there is a better way to do it than that though.
Problem
I have a method which takes a `List<?>` as an argument. ``` public static String method(List<?> arg){ // Do something based on type of the list } //I call the method as below List<ClassA> listA = new ArrayList<ClassA>(); List<ClassB> listB = new ArrayList<ClassB>(); method(listA); method(listB); ``` In `method`, how do I know if `arg` is a `List` of `ClassA` or a `List` of `ClassB`?