java中泛型的本质

来源:互联网 发布:python能做网站开发吗 编辑:程序博客网 时间:2024/06/06 16:51
package com.test.reflect;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;public class ReflectMode {public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {//首先创建两个集合ArrayList list=new ArrayList();ArrayList<String> list1=new ArrayList<String>();list1.add("hello");//list1.add(1);编译有错//通过反射获取两个对象的类类型Class c1=list.getClass();Class c2=list1.getClass();System.out.println(c1==c2);//编译结果为true/*** c1==c2说明编译后的集合是去泛型的* java中的泛型是为了防止输入错误,只在编译阶段有效,绕过编译就无效* 验证:用过方法的反射进行验证*///这里使用c1c2是一样的,为了验证我使用c2并为其添加数字//注意再添加了不同类型的数据后不可已使用foreach循环Method m=c2.getMethod("add", Object.class);//这里我们为其添加一个数字并验证输出m.invoke(list1, 2);System.out.println(list1.size());System.out.println(list1);}}


0 0
原创粉丝点击