JAVA反射机制--怎么不受泛型束缚给数组赋值
来源:互联网 发布:网络信息监管法 编辑:程序博客网 时间:2024/04/29 03:54
在Java中,声明数组的时候我们经常会写泛型限制用户输入或者获取的数据。如:ArrayList<String> list = new ArrayList<>();
String就是泛型。当我们调用
list.add();方法的时候,如果输入整型数据,编译就会报错。
当我们引用其他大牛写的第三方Jar包,有时候和包中定义的数据类型不一样,这个时候就要用java的反射机制跳过编译阶段。
ArrayList list = new ArrayList<>();ArrayList<String> listStr = new ArrayList<>();list.add("obj");listStr.add("str");
//获得ArrayList的类类型Class c1 = list.getClass();Class c2= listStr.getClass();//反射操作都是编译之后的操作System.out.println(c1==c2);//返回true.Java中限制输入的泛型只在编译时有效
*Java反射机制可以无视泛型的原因就是因为泛型只在编译时生效然后我们就可以通过获取类中的add方法(
Method method = c2.getMethod("add", Object.class);
)向list中插入值.在上面我们定义的泛型是String类型,但是在这我们插入20依旧会添加到listStr中。
Method method = c2.getMethod("add", Object.class);Object obj = method.invoke(listStr, 20);System.out.println(listStr.size());
关于class中方法的参数以及怎么通过class.getMethod()获得不同类中的方法在javaapi中都可以查看,在我的源码中也都有实例。实例CODE:
12 0
- JAVA反射机制--怎么不受泛型束缚给数组赋值
- java反射机制动态给属性赋值
- java反射机制 给类的私有变量赋值。
- "不受束缚"的产品设计
- java 反射 根据字符串给字段赋值
- java反射给实体类赋值
- JAVA反射——给属性赋值
- java 反射给字段重新赋值
- Java反射机制操作对象赋值
- 反射给javabean赋值
- Java反射机制之数组的反射
- 通过java反射机制来获取属性的类型,获取属性的值并给属性赋值
- 如何给Java String数组赋值
- Java反射机制--是什么,为什么,怎么用。
- Java反射机制--是什么,为什么,怎么用。
- Java高级编程:使用反射强制给private字段赋值
- Java反射 - 简单的给Bean赋值和取值
- 怎样给数组赋值
- jprofiler 监测eclipse的程序
- [NOIP2016普及] 回文日期
- 希尔排序(C语言实现)
- shell字符串
- shell传参
- JAVA反射机制--怎么不受泛型束缚给数组赋值
- Firebase快速集成-Android篇
- C#——Socket : Server端
- c# Linq操作XML,查找节点数据
- viewpager导航和滑动条使用
- shell运算
- 项目 1 - 验证算法之(8)基数排序
- Faster-Rcnn中RPN(Region Proposal Network)的理解
- Docker中文手册