Java 反射专题
来源:互联网 发布:mac git tower 编辑:程序博客网 时间:2024/05/17 22:46
Java 反射专题
1. Class类
类是对象,类是java.lang.Class类的实例对象
表示方法:
1)第一种表达方式-->实际上告诉我们任何一个类都有一个隐含的静态成员变量class
Class c1 = 类.class;
2)第二种表达方式,已经知道该类的对象通过getClass方法
Class c2 = object.getClass();
3)第三种表达方式
Class c3=null;
c3 = Class.forName(XXX);
2. 动态加载类
Class.forName("类的全称")
不仅代表了类的类类型,还代表了动态加载类
编译时刻加载类是静态加载类,运行时刻加载类是动态加载类
3. 基本的数据类型
void关键字都存在类类型
4. 方法的反射
// 要获取类的信息,首先要获取类的类类型
Class c=obj.getClass();//传递的是哪个子类的对象,c就是该子类的类类型
// 获取类的名称
c.getName()
// 获取类的方法-->方法也是对象
Method[] ms= c.getMethods();// 获取的是所有public的函数,包括父类继承而来的
Method[] ms= c.getDeclaredMethods();//获取的是自己声明的函数,不限定访问权限
// 得到方法的返回值类型的类类型
Class returnType = ms[i].getReturnType();
// 获取方法的名称
ms[i].getName();
// 获取参数类型--> 得到的是参数列表的类型的类类型
Class[] paramType = ms[i].getParameterTypes();
paramType[i].getName();
5. 成员变量的反射
// 成员变量也是对象,java.lang.reflect.Field ,封装了关于成员变量的操作
Field[] fs = c.getFields();//获取的是所有public的成员变量,包括从父类继承而来
Field[] fs = c.getDeclaredFields();//获取的是自己声明的成员变量,不限定访问权限
//获取成员变量的类型的类类型
fs[i].getType.getName()
//成员变量的名称
fs[i].getName()
// 获取成员变量的数值
fs[i].setAccessible(true);
object v= fs[i].get(this);
String value = v.toString
1. Class类
类是对象,类是java.lang.Class类的实例对象
表示方法:
1)第一种表达方式-->实际上告诉我们任何一个类都有一个隐含的静态成员变量class
Class c1 = 类.class;
2)第二种表达方式,已经知道该类的对象通过getClass方法
Class c2 = object.getClass();
3)第三种表达方式
Class c3=null;
c3 = Class.forName(XXX);
2. 动态加载类
Class.forName("类的全称")
不仅代表了类的类类型,还代表了动态加载类
编译时刻加载类是静态加载类,运行时刻加载类是动态加载类
3. 基本的数据类型
void关键字都存在类类型
4. 方法的反射
// 要获取类的信息,首先要获取类的类类型
Class c=obj.getClass();//传递的是哪个子类的对象,c就是该子类的类类型
// 获取类的名称
c.getName()
// 获取类的方法-->方法也是对象
Method[] ms= c.getMethods();// 获取的是所有public的函数,包括父类继承而来的
Method[] ms= c.getDeclaredMethods();//获取的是自己声明的函数,不限定访问权限
// 得到方法的返回值类型的类类型
Class returnType = ms[i].getReturnType();
// 获取方法的名称
ms[i].getName();
// 获取参数类型--> 得到的是参数列表的类型的类类型
Class[] paramType = ms[i].getParameterTypes();
paramType[i].getName();
5. 成员变量的反射
// 成员变量也是对象,java.lang.reflect.Field ,封装了关于成员变量的操作
Field[] fs = c.getFields();//获取的是所有public的成员变量,包括从父类继承而来
Field[] fs = c.getDeclaredFields();//获取的是自己声明的成员变量,不限定访问权限
//获取成员变量的类型的类类型
fs[i].getType.getName()
//成员变量的名称
fs[i].getName()
// 获取成员变量的数值
fs[i].setAccessible(true);
object v= fs[i].get(this);
String value = v.toString
0 0
- Java 反射专题
- Java反射专题1
- Java反射专题2
- Java总结——反射专题
- 反射专题3
- 反射专题4
- 反射专题5
- 反射面试专题
- Java--Reflect(反射)专题5——方法反射的基本操作
- Java--Reflect(反射)专题6——通过反射了解集合泛型的本质
- Java--Reflect(反射)专题1——class 类的使用
- Java--Reflect(反射)专题2——动态加载类
- Java--Reflect(反射)专题3——获取类的方法的所有信息
- Java--Reflect(反射)专题4——获取成员变量以及构造函数信息
- JAVA实现EXCEL公式专题(二)——反射解析EXCEL函数
- javase 专题 之反射和动态代理
- Javase 专题之 反射和动态代理
- Javase 专题 反射和动态代理 aop
- javascript学习笔记之-----Array数组
- leetcode Trapping Rain Water
- 牛吃草问题
- myeclipse集成maven问题解决
- 边听边记-财经郎眼-国企改革 大风已起 151026
- Java 反射专题
- shell编程获取文件名以及文件后缀名.
- 通用固定长度编码格式的字符串查找算法的实现
- Unity5中优化VR 应用的12个技巧
- 引导滤波(guided image filtering)原理及C++实现
- Android studio 1.4 学习笔记
- spring、structs、habrinate 的文字常识解释
- [备忘]适配Android M 将HttpClient替换为HttpUrlConnection相关资料
- java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView