java反射调用无参与有参

本文深入探讨了Java反射机制的应用,通过实例演示了如何使用反射来调用类的方法,并详细解释了参数传递的不同方式。此外,还展示了如何处理可能出现的异常情况。

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


package reflect;

import java.lang.reflect.InvocationTargetException;  
import java.lang.reflect.Method;  
import java.util.ArrayList;  
import java.util.List;  

public class Main {

	public static void main(String[] args) throws IllegalAccessException,
			IllegalArgumentException, InvocationTargetException,
			NoSuchMethodException, SecurityException {
		// TODO Auto-generated method stub

		Test t = new Test();

		Method createBondMethod = Test.class.getMethod("t",boolean.class);
		Boolean returnValue = (Boolean) createBondMethod.invoke(t,true);
		
		
		Method m2 = Test.class.getMethod("t4",new Class[]{String.class,int.class});	//注意传参的方式
		m2.invoke(t,new Object[]{"liu",234});
	}

	private static class Test {

		public void t(String t) {

			System.out.println("15-------------" + t);
		}
		
		public void t(boolean b){
			
			System.out.println("29-------------");
		}

		public void t() {

			System.out.println("28-------------");
		}
		
		public void t4(String s1,int s2){
			System.out.println("49-------------" + s1 + ": "+s2);
		}

	}
	
	
	
	
	


}


注意:调用方法的参数 形式,源码如下:

@CallerSensitive
	    public Method getMethod(String name, Class<?>... parameterTypes)
	            throws NoSuchMethodException, SecurityException {
	            return getMethod(name, parameterTypes, true);
	        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值