Вы можете использовать любой Список <...> - s, защита слабее, чем обычно.
Попробуйте это
List<String> a = new Vector<String>();
List<Integer> b = new Vector<Integer>();
Integer i = new Integer(0);
b.add(2);
a = (List<String>) (Object) b;
System.out.println((Object)a.get(0));
исключений не будет.
Это потому, что обобщения являются только понятием времени компиляции.
Если вы напишите
System.out.println(a.get(0));
, вы получите ClassCastException, поскольку версия функции println, определенная во время компиляции, будет println (String arg).
Ах, поэтому ответ на вопрос: не должно быть такой альтернативы.