public static <E> void append(List<E> list, Class<E> cls) throws Exception { E elem = cls.newInstance(); // OK list.add(elem); } //You can invoke the append method as follows: List<String> ls = new ArrayList<>(); append(ls, String.class);