java invoke 2【动态调用类的方法】

本文详细介绍了如何在Java中动态调用类的方法,通过创建类实例并利用反射API获取和调用方法。

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

java invoke 2【动态调用类的方法】


1.User.java【同java invoke 1中的User】

2.Go2.java

package cvr.go;

import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

import cvr.vo.User;

public class Go2 {

	public static void main(String[] args) {
		int val[] = new int[]{11,12,13,14,15,16,17,18,19,20};
		User user = new User();
		try {
			Class cla = user.getClass();
			Object obj = cla.newInstance();//新的实例
			for (int i = 1; i <= 10; i++) {
				String methodName = "value"+i;
				PropertyDescriptor pd = new PropertyDescriptor(methodName, cla);
				Method method = pd.getWriteMethod();//获得写方法
				//method.invoke(obj, val[i-1]);
				method.invoke(user, val[i-1]);//user 表示使用那个实例,如果用obj【新的实例】,在下文中若使用user将没有如何改变
				
				PropertyDescriptor pd2 = new PropertyDescriptor(methodName, cla);
				Method rM = pd2.getReadMethod();//获得读方法
				//Integer num = (Integer) rM.invoke(obj);
				Integer num = (Integer) rM.invoke(user);
				System.out.println("value"+i+"="+num);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println(user);
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值