泛型的作用 — 程序设计选择题
题目
某开发组定义方法 void process(List<Object> list),尝试把 ArrayList<String> 传入编译报错;改用泛型方法 <T> void process(List<T> list) 后编译通过。在 process 内部调用 list.add("x") 时,若 T 已被推断为 Integer,则该行编译报错。关于泛型在此体现的作用,下列说法正确的是:
A. 泛型在编译期约束元素类型,把类型错误提前到编译阶段暴露,取元素时无需强制转换
B. 泛型信息在运行时完整保留,JVM 依据它对 add 调用做运行时类型拦截
C. 泛型让不同参数类型的 List 在运行时属于不同的类,从而相互隔离
D. 泛型的主要作用是把 ClassCastException 从编译期转移到运行期再抛出