Java中使用反射详解
扫描二维码
随时随地手机看文章
关于Java中的反射
反射概念
反射就是将一个类的class文件,封装成一个对象
从class中获取(解剖)类中的成员,并且运行起来
反射有关系的类
java.langClass 封装class文件的
java.lang.reflect.Constructor 封装构造方法的
java.lang.reflect.Field 封装成员变量的
java.lang.reflect.Method 封装成员方法的
//以下所有代码的演示都会使用此类
/*
*
* 用于反射演示的Person类
*
*/
public class Person {
private String name;
private int age;
public String email;
public Person(){System.out.println("空参赛构造");}
public Person(String name,int age){
this.age = age;
this.name = name;
System.out.println("两个参数构造");
}
public Person(String name)
{
this.name = name;
System.out.println("私有构造");
}
//定义多个普通方法
public void speak()
{
System.out.println("say");
}
public void show(int x)
{
System.out.println("一个人的x"+x);
}
public String toString()
{
return "Person " +name+"......"+age+"..."+email;
}
// {
// System.out.println("构造代码要建对象,才运行");
// }
//
// static{
// System.out.println("静态代码块,加载类的时候运行");
// }
}
//==================================================
2.获取反射的三种方式
编译后的class文件,对象的方式
描述类是Class,三种方式的返回值类型也是Class类型
A. 对象.getClass()
B. 类名.class
C. Class.forName()获取
推荐使用:Class.forName方式获取一个类的字节码文件对象 灵活方便,你的类名可以通过字符串参数传递的
public class ReflectDemo {
public static void main(String[] args) throws ClassNotFoundException {
//第一种,通过对象获取 Object类的方法 class