java反射之java 泛型的本质
2024-10-11 16:38:15
1.泛型
反射API用来生成在当前JAVA虚拟机中的类、接口或者对象的信息。
Class类:反射的核心类,可以获取类的属性,方法等内容信息。
Field类:Java.lang.reflect.表示类的属性,可以获取和设置类的中属性值。
Method类:Java.lang.reflect。表示类的方法,它可以用来获取类中方法的信息或者执行方法
Construcor类:Java.lang.reflect。表示类的构造方法。
package com.imooc.reflect;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class ClassDemo4 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
ArrayList<String> list1 = new ArrayList<String>();
list1.add("hello");
Class c1 = list.getClass();
Class c2 = list1.getClass();
System.out.println(c1 == c2);
/**
* 反射的操作都是编译之后的操作
* c1==c2 结果返回true说明编译之后集合的泛型是去泛型化的
* java中集合的泛型,是防止错误输入的,只在编译阶段有效,
* 绕过编译就无效了
* 验证:我们可以通过方法的反射来操作,绕过编译
*/
try {
Method m = c2.getMethod("add", Object.class);
m.invoke(list1, 100);//绕过编译操作就绕过了泛型
System.out.println(list1.size());
System.out.println(list1);
/*
for (String string : list1) {
System.out.println(string);
}*///现在就不能这样遍历了
} catch (Exception e) {
//TODO:handle exception
e.printStackTrace();
}
}
}
最新文章
- 访问IIS网站需要输入用户名密码(非匿名登录)问题汇总
- oralce 密码长度
- 系统调用方式文件编程,王明学learn
- 关于collapsed margin(外边距合并)
- 小白学Linux(二)--命令行基本操作
- svn vs git
- 51nod1369 无穷印章
- JSLink to render the list to show people detail info with picture
- 【HDOJ】1422 重温世界杯
- 双slave的server_uuid同样问题
- DOS命令行 定时关机&;取消定时关机
- angular在ie8下的一个bug
- C#操作Kentico cms
- Python入门教程(1)
- 50个php程序性能优化集锦
- Java中对List<;E>;按E的属性排序的简单方法
- 如何恢复(初始化)android studio所有设置
- Android开发技巧——定制仿微信图片裁剪控件
- 使用C++的string实现高精度加法运算
- 001-zookeeper 简介-paxos算法,zk简介,特点