Java的反射机制简介

本文介绍了Java的反射机制,包括如何获取Class对象,以及如何通过反射调用类的方法和属性。详细阐述了通过Class的forName、class属性和getClass方法获取Class对象,使用getMethod、getField和getDeclaredField方法访问成员方法和属性,以及如何处理private权限的方法和属性。此外,还提供了一个代码示例,展示了反射机制在实际操作中的运用。
摘要由CSDN通过智能技术生成

        Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。
注:每个类被加载之后,系统都会为该类生成一个对应的Class对象,通过Class对象就可以访问到JVM中该类的信息,一旦类被加载到JVM中,同一个类将不会被再次载入。被载入JVM的类都有一个唯一标识就是该类的全名(包名和类名)。
    
获取Class类对应有
    1、使用Class类的静态方法forName(String className),其中参数className标识所需类的全名,
    如Class obj = Class.forName("java.lang.String")
    2、用类名调用该类的class属性来获得该类对应的Class对象,如Class obj = String.class 
    3、用对象调用getClass()方法来获得该类对应的Class对象,如Person p = new Person();Class obj = p.getClass();
 

获取相关方法、属性
    调用指定方法:
    通过Class类的getMethod(String name,Class…parameterTypes)方法取得一个Method对象,并设置此方法操作时所需要的参数类型。
    之后使用Object invoke(Object obj, Object[] args)进行调用,并向方法中传递要设置的obj对象的参数信息。
    说明:
​    1.Object对应原方法的返回值,若原方法无返回值,此时返回null
​    2.若原方法若为静态方法,此时形参obj可为null
​    3.若原方法形参列表为空,则args为null
​    4.若原方法声明为private,则需要在调用此invoke()方法前,显式调用方法对象的 setAccessible(true)方法,将可访问private的方法。

    调用指定属性:
    通过Field类提供的set()和get()方法就可以完成设置和取得属性内容的操作。
    public Field getField(String name)返回public的Field相关属性。
    public Field getDeclaredField(Str

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值