From my own experimenting I've concluded that any type arguments of an object or object reference is stripped when passed as an argument to a method. The question of type arguments pops up if a parameter of the method is parameterized with type parameters:
<T> void method (ArrayList<T> list) {
list.add( (T) new Integer(4));
sysout (list.get(0));
}
Then if we pass each of two parameterized ArrayLists to an invocation of this method:
method(new ArrayList<Integer>());
method(new ArrayList<String>());
We will see that neither produces an error and both print 4. I assume that the compiler retains the erasure of T as Object. Does this experiment not prove that type arguments aren't passed to a method?