A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、Java反射的概念
  反射含义:可以获取正在运行的Java对象。
  2、Java反射的功能
  1)可以判断运行时对象所属的类
  2)可以判断运行时对象所具有的成员变量和方法
  3)通过反射甚至可以调用到private的方法
  4)生成动态代理
设计模式:

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        Scanner sc = new Scanner(System.in);


  3、实现Java反射的类

  1)Class:它表示正在运行的Java应用程序中的类和接口
  2)Field:提供有关类或接口的属性信息,以及对它的动态访问权限
  3)Constructor:提供关于类的单个构造方法的信息以及对它的访问权限
  4)Method:提供关于类或接口中某个方法信息
  注意:Class类是Java反射中最重要的一个功能类,所有获取对象的信息(包括:方法/属性/构造方法/访问权限)都需要它来实现
  4、编写Java反射程序的步骤:
  1)必须首先获取一个类的Class对象
  例如:
  Class c1 = Test.class;
  Class c2 = Class.forName(“com.reflection.Test”);
  Class c3 = new Test().getClass();
  2)然后分别调用Class对象中的方法来获取一个类的属性/方法/构造方法的结构


通过构造方法获取的典型:
public class ReflectDemo2 {  
    public static void main(String[] args) throws Exception {  
        // 获取字节码文件对象  
        Class c = Class.forName("cn.itcast_01.Person");  

        // 获取带参构造方法对象  
        // public Constructor<T> getConstructor(Class<?>... parameterTypes)  
        Constructor con = c.getConstructor(String.class, int.class,  
                String.class);  

        // 通过带参构造方法对象创建对象  
        // public T newInstance(Object... initargs)  
        Object obj = con.newInstance("张三", 27, "北京");  
         
        System.out.println(obj);  
    }  
}

class类的方法详解:


Class c1 = TestReflection.class;

//获取指定的包名
  String package01 = c1.getPackage().getName();

//获取类的修饰符
  int mod = c1.getModifiers();

//获取指定类的完全限定名
  String className = c1.getName();
//获取实现的接口
  Class[] interfaces = c1.getInterfaces();
  for (Class t : interfaces) {
  System.out.println("interfacesName = " + t.getName());
  }
字段的访问修饰符
  Class type = field.getType();

1 个回复

倒序浏览
走过路过
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马