一、Java-Reflect专题
1.Class类的使用
2.方法的反射
3.成员变量的反射
4.构造函数的反射
5.Java类加载机制
|------------------------------------------基本反射简介----------------------------------------------|
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象
能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
JAVA反射(放射)机制:"程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言"。从这个观看,Perl,
PythonRuby是动态语言,C++,Java,C#不是动态语言。但是JAVA有着一个非常突出的动态相关机制:Reflection
用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以
加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields
设值、或唤起其methods。
|-----------------------------------用于获得方法信息函数:------------------------------------------|
Method getMethod(String name, Class[] params) -- 使用特定的参数类型,获得命名的公共方法
Method[] getMethods() -- 获得类的所有公共方法
Method getDeclaredMethod(String name, Class[] params) -使用特写的参数类型,获得类声明的命名的方法
Method[] getDeclaredMethods() -- 获取的是所有该类自己声明的方法,不问访问权限
|-----------------------------------用于获得获取成员变量:------------------------------------------|
Field[] getFields()--方法获取的是所有的public的成员变量的信息
Field[] getDeclaredFields()--获取的是该类自己声明的成员变量的信息
Field getField(String name) -- 获得命名的公共字段
Field getDeclaredField(String name) -- 获得类声明的命名的字段
|-----------------------------------用于获得构造函数的信息:------------------------------------------|
Constructor[] getConstructors()--获取所有的public的构造函数
Constructor[] getDeclaredConstructors()--得到自己声明的构造函数,推荐使用(与接入级别无关)
Constructor getConstructor(Class[] params) -- 获得使用特殊的参数类型的公共构造函数,
Constructor getDeclaredConstructor(Class[] params) -- 获得使用特定参数类型的构造函数(与接入级别无关)
==========================================================================
1.什么是Calss类
1):在面向对象的世界里,万事万物皆对象
Java语言中,静态成员、普通数据类型是不是对象昵?
类是谁的对象昵?
类是对象,类是Java.lang.Class类的实例对象。
2): 这个对象该怎么表示那?
There is a class named Class 中文表示:现在有一个类,他的名字就是Class
直接上大栗子分析: