JAVA反射方法带有一个数组参数加一个正常的参数,这该如何反射
假设方法为publicvoidaaa(String[]args,Objectobj);而反射调用一个方法publicObjectfanshe(Object[]params...
假设方法为public void aaa(String[] args,Object obj);而反射调用一个方法public Object fanshe (Object[] params){ method.invoke(newInstanceobj,params); }
这时候我的params由外部传入,那么请问如何设置反射参数 展开
这时候我的params由外部传入,那么请问如何设置反射参数 展开
展开全部
不是很明白你具体想做什么!能不能详细具体一点
反射调用方法例子,具体不知道你的疑问在什么地方,你说的设置反射参数代表什么?
public class Test
{
public void methodA(String[] args,Object obj)
{
System.out.println("数组:"+Arrays.toString(args)+", 对象:"+obj);
}
public static void test(String[] args) throws Exception
{
Class<?> clazz=Class.forName("Test");
Method method=clazz.getMethod("methodA",args.getClass(),Object.class);
method.invoke(clazz.newInstance(),args,new Object());
}
public static void main(String[] args) throws Exception
{
test(new String[]{"A","B","C"});
}
}
更多追问追答
追问
我补充了一下问题,你看看,因为这里写有字数限制
追答
写完善例子,,你看看
public class Test
{
public void methodA(String[] args,Object obj)
{
System.out.println("数组:"+Arrays.toString(args)+", 对象:"+obj);
}
public static void test(String classPath,Object obj,String methodName,Object[] params) throws Exception
{
Class<?> clazz=Class.forName(classPath);
//这里方法对象获取我简单这样写,但是具体params里面应该是什么样的数据下面说
Method method=clazz.getMethod(methodName,new String[0].getClass(),Object.class);
//下面是获取到method对象后调用直接传进去一个Object[]就可以了,参数匹配应该在获取方法的时候验证
method.invoke(obj,params);
}
public static void main(String[] args) throws Exception
{
//这里参数是应该遵循一定规则的,不是随意的,长度应该是要调用的方法参数的个数
Object[] params=new Object[2];
//参数的内容也是应该遵循一定规则的,每个位置对应具体参数类型
params[0]=new String[]{"A","B","C"};
params[1]=new Object();
test("Test",new Test(),"methodA",params);
}
}
TableDI
2024-07-18 广告
2024-07-18 广告
当我们谈到Python与Excel的拆分时,通常指的是使用Python的库来读取Excel文件中的数据,然后根据某种逻辑(如按行、按列、按特定值等)将数据拆分成多个部分或输出到新的Excel文件中。上海悉息信息科技有限公司在处理这类任务时,...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询