java中的反射

反射的定义:

将类的各个部分组成一个新的对象(Class 对象) 就是反射机制。如

类中的成员变量组成java.lang.reflect.Field对象

类中的构造方法组成java.lang.reflect.Constructor对象

类中的方法组成java.lang.reflect.Method对象

反射的优点:

反射是所有框架的灵魂 所有的框架都使用了反射技术。

在程序运行过程中,可以操作这些对象。

可以解耦,提高程序的可拓展性。

获取反射对象:

    public static void main(String[] args) throws ClassNotFoundException {
        //第一种
        Student stu  = new Student();
        Class cla01 = stu.getClass();
        System.out.println(cla01);
        //第二种方式
        Class cla02 = Student.class;
        System.out.println(cla02);
        //第三种方式
        Class cla03 = Class.forName("com.stary.Student");
        System.out.println(cla03);
    }

注意:同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。

反射中常用的方法:

方法介绍
getField(String name)获得某个公有的属性对象
getFields()    获得所有公有的属性对象
getDeclaredField(String name)获得某个属性对象
getDeclaredFields()    获得所有属性对象
getConstructor(Class...<?> parameterTypes)获得该类中与参数类型匹配的公有构造方法
getConstructors()获得该类的所有公有构造方法
getDeclaredConstructor(Class...<?> parameterTypes)获得该类中与参数类型匹配的构造方法
getDeclaredConstructors()获得该类所有构造方法
getMethod(String name, Class...<?> parameterTypes)获得该类某个公有的方法
getMethods()获得该类所有公有的方法
getDeclaredMethod(String name, Class...<?> parameterTypes)获得该类某个方法
getDeclaredMethods()获得该类所有方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值