Java_反射(reflect)

一、反射

1. 反射是用来做框架的
2. 一个类由字段,方法组成,反射就是加载类,解剖出类的各个组成部分

二、加载类(Class类)

1. 是做反射的第一步
2. Class代表某个类的字节码
3. 加载类通常是用Class类中的forName(String className)方法加载类,当然还有其他方法加载类
package com.cwt.reflect;

public class Demo1 {
    //加载类的三种方法
    public static void main(String[] args) throws ClassNotFoundException {
        // 加载类的三种方法

        // 第一种
        Class class1 = Class.forName("/T_reflect/src/com/cwt/reflect/Person");// 括号中是类的完整名称

        // 第二种
        Class class2 = new Person().getClass();

        // 第三种
        Class class3 = Person.class;
    }
}

三、反射出类的各个组成部分

1. 首先看下Class中一些常用的方法
     (1)getConstructor(Class<?>... parameterTypes)
         返回某一个公共构造函数,如果是构造函数是公共的则调用这个方法
     (2) getField(String name) 
          返回某一个公共字段,如果字段是公共的,则可以调用这个方法
     (3) getMethod(String name, Class<?>... parameterTypes) 
          返回某一个公共方法。如果方法是公共的则可以调用这个方法
     (4)getDeclaredConstructor(Class<?>... parameterTypes) 
          返回一个  Class 对象所表示的类或接口的指定构造方法。如果构造函数是私有的则调用这个方法
     (5)getDeclaredField(String name) 
          返回一个 Field ,如果字段是私有的则调用这个方法
     (6)getDeclaredMethod(String name, Class<?>... parameterTypes) 
      返回一个 Method ,如果方法是私有的,则调用这个方法。

2.  如何通过上面的一些方法来反射出类的各个组成部分,看下面代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值