Java中的反射
来源:互联网 发布:山东大学网络教育官网 编辑:程序博客网 时间:2024/05/01 06:18
反射(Reflect)就是把Java类中的各种成分映射成相应的Java类。例如,一个Java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法,包等等信息也用一个个的Java类来表示,就像汽车是一个类,汽车中的发动机,变速箱等等也是一个个类。
表示Java类的Class类显然要提供一系列的方法,来获取其中的变量,方法,构造方法,修饰符,包等信息,这些信息就是用相应类的实例对象来表示,它们就是Field、Method、Constructor、Package等等。
l 构造方法的反射应用
下面来用反射机制实现下面这行代码
String str1 = new String(new StringBuffer("abc"));
如下:
Constructor constructor = String.class.getConstructor(StringBuffer.class); //得到某一个构造方法
String str2 = (String) constructor.newInstance(new StringBuffer("abc")); //创建实例对象
System.out.println(str2);
l 成员变量的反射应用
l 成员方法的反射应用
Method methodCharAt = String.class.getMethod("charAt", int.class);
System.out.println(methodCharAt.invoke(str1, 1));
l 数组与Object的关系及其反射类型
int [] a1 = new int[]{1,2,3};
int [] a2 = new int[4];
int[][] a3 = new int[2][3];
String [] a4 = new String[]{"a","b","c"};
Object aObj1 = a1;
Object aObj2 = a4;
//Object[] aObj3 = a1;Object[]数组中的元素是Object,int []数组中的元素是int。这两个就不能划等号了
Object[] aObj4 = a3;
Object[] aObj5 = a4;
System.out.println(Arrays.asList(a1));//显示不正常
System.out.println(Arrays.asList(a4)); //调用List Arrays.asList(Object[] a)即Object[] a=a4,所以可以调用
l 数组的反射应用(Array())
举例:
- JAVA中的类反射
- Java中的反射
- Java中的类反射
- Java中的反射机制
- JAVA中的反射机制
- java 中的反射
- Java中的反射机制
- java中的反射机制
- JAVA中的反射机制
- Java中的反射机制
- java中的反射应用
- java中的反射
- Java中的反射
- Java中的反射机制
- java中的反射
- java中的反射
- java中的反射机制
- java中的反射问题
- 由DatePicket和TimePicker扩展延伸其他控件
- oracle 11g 新特性 -- Flashback Data Archive 说明
- pl sql 常用技巧
- 指针和数组
- flash学习之mouseChildren 与 mouseEnabled
- Java中的反射
- 信息系统项目管理系列之三: 项目管理过程
- Android apk文件签名
- 对Linux内核中进程上下文和中断上下文的理解
- 字节序转换、地址的数值和表达式间的转换
- Android Info类的总结
- Android GPS获得经纬度并得到该坐标精确地址
- Linux字符设备驱动(一)
- Solr1.4中索引的主从复制,Master/Slave结构