Java反射——访问成员方法

本文探讨了Java反射机制中如何访问成员方法。通过Method对象,可以获取并操纵类的方法信息,包括修饰符、方法名、返回类型及参数。文章提供了Modifier类解析修饰符的方法,并给出示例展示如何输出类中的所有方法及其详细信息。同时,介绍了如何通过反射调用类的成员方法,例如计算两个数之和的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

反射

通过Java的反射机制,可以在程序中访问已经装载到JVM中的Java对象的描述,实现访问,检测和修改描述Java对象本身信息的功能。通过反射可以访问构造方法,成员变量,和成员方法。

访问构造方法:Java反射——访问构造方法
访问成员变量:Java反射——访问成员变量

访问成员方法

利用Method对象可操纵相应的方法。
在这里插入图片描述
Method类提供的常用方法

方法 说明
getName() 获取该方法的名称
getParameterTypes() 按照声明顺序以Class数组的形式获得该方法的各个参数的类型
getReturnType() 以Class对象的形式获得该方法的返回值类型
getExceptionTypes() 以Class数组的形式获得该方法可能抛出的异常类型
invoke(Object obj, Object … args) 利用指定参数args执行指定对象obj中的该方法,返回值为Object型
isVarArgs() 查看该构造方法是否允许带有可变数量的参数,如果允许返回true,不允许返回false
getModifiers() 获得可以解析出该方法所采用修饰符的整数

getModifiers()方法的返回值是所表示的修饰符信息,在该类中提供了一系列用来解析的静态方法,既可以查看是否被指定的修饰符修饰,还可以以字符串的形式获得所有修饰符。
Modifier类中的常用解析方法:

静态方法 说明
isPublic(int mod) 查看是否被public修饰符修饰,如果是返回true,反之返回false
isProtected(int mod) 查看是否被protected修饰符修饰,如果是返回true,反之返回false
isPrivate(int mod) 查看是否被private修饰符修饰,如果是返回true,反之返回false
isStatic(int mod) 查看是否被static修饰符修饰,如果是返回true,反之返回false
isFinal(int mod) 查看是否被Final修饰符修饰,如果是返回true,反之返回false
toString(int mod) 以字符串形式返回所有修饰符

写个例子,来反射一个类里有多少个方法,拿java.lang.String来举例子。

public class Study2 {
   

	public static void main(String[] args) {
   
		try {
   
			Class c = Class.forName("java.lang.String");// 创建class对象
			Method ms[] = c.getDeclaredMethods();// 获得所有的方法
			for (Method m : ms) {
   
				System.out.print(Modifier.toString(m.getModifiers()) + " ");// 获取所有方法的修饰符
				System.out.print(m.getReturnType().
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值