关于java中method.invoked 传入类型不一样的问题

在自定义框架开发中遇到一个问题,当使用反射调用Method的invoke方法时,如果方法参数中包含Integer类型,会抛出错误。原本的invoke方法需要传入方法对应的Class和Object数组参数。当所有参数为String类型时正常,但当出现Integer时导致失败。经过测试发现,invoke不处理类型转换或拆箱操作,需手动处理参数类型转换。
摘要由CSDN通过智能技术生成

关于java中method.invoked 传入类型不一样的问题

前言

  • 最近在尝试写着自己的一些框架,其中遇到了一个比较麻烦的问题,就是mvc中,获取前端传来的参数后,需要辨别类型,一一对应传给method调用invoke方法,但是。其中invoke需要传入改方法对应类的class以及参数,object数组。当方法的传入参数都是string类型的时候没有任何的问题,但是,当其中一个为Integer类型的时候就会报错。然后自己另外写了点方法测试一下。

测试

package Test;

import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class TestMethod {
	
	public String string1 = "11111";
	public String string2 = "22222";
	public String string3 = "33333";
	public Integer integer1 = 111;

	
	public void setString1(String string1,String string2,String string3,Integer integer1) {
		System.out.println("进入 setString1");
		this.string1 = string1;
		this.string2 = string2;
		this.string3 = string3;
		this.integer1 = integer1;
		System.out.println("this.string1 :" + this.string1);
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值