Java基础与案例开发详解の反射机制(完整)
2016-07-05 22:21
681 查看
反射机制主要提供以下功能
反射机制所需要的类如下
Class类
获得Class对象的三种方法
package com.burns.test; public class GetClassTest2 { public static void main(String[] args) throws ClassNotFoundException { // 方法一:类型名.class Class c1 = Student.class; Class c11 = GetClassTest2.Student.class; System.out.println(c1); System.out.println(c11); // 方法二:Object类的getClass() Class c2 = new GetClassTest2.Student().getClass();// 如果class // Student前面没有static修饰符的话,应该先创建GetClassTest2的实例对象,再用对象.new // Student()的方式来创建Student对象 System.out.println(c2); // 方法三:CLass类的forName()静态方法获得与字符串对应的Class对象 Class c3 = Class.forName("com.burns.test.GetClassTest2$Student"); System.out.println(c3); } static class Student { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } }
执行结果如下:
class com.burns.test.GetClassTest2$Student class com.burns.test.GetClassTest2$Student class com.burns.test.GetClassTest2$Student class com.burns.test.GetClassTest2$Student
Class类的常用方法
使用java反射机制获取类型信息
Constructor类创建对象
创建对象的方式方式一:通过new 构造函数
java.util.Date currentDate = new java.util.Date();
方式二:通过反射的无参构造函数
例如:
Class c= Class.forName(“java.util.ArrayList”);
List list = (List)c.newInstance();
>方式三:通过反射的有参构造函数
Method类的来反射调用类的对象的方法
Field类访问成员变量的值
Array类操作数组
静态代理和动态代理
相关文章推荐
- Java反射随记
- AS3中的反射(速记) 分析
- Ruby简明教程之方法(Method)介绍
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C# 反射(Reflection)的用处分析
- C#通过反射创建自定义泛型
- 通俗易懂的C#之反射教程
- C#根据反射和特性实现ORM映射实例分析
- 深入反射生成数组的详解
- C#利用反射来判断对象是否包含某个属性的实现方法
- C#利用反射技术实现去掉按钮选中时的边框效果
- C#泛型和反射实例解析
- C# Dynamic关键字之:dynamic为什么比反射快的详解
- javascript数组操作总结和属性、方法介绍
- mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
- JavaScript Array扩展实现代码
- JavaScript:Array类型全面解析
- JavaScript之数组(Array)详解
- Javascript实现Array和String互转换的方法
- C#中Array与ArrayList用法及转换的方法