gpt4 book ai didi

Java反射调用多个参数的方法

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:56 24 4
gpt4 key购买 nike

您好,我正在使用 Java 反射来调用方法并将参数传递给方法。这是示例代码

package com.tests;
public class base
{
void method1(String username,String Pwd)
{System.out.println("method with 2 parameters "+username+" "+pwd);
}
void method2(String username,String Pwd)
{
System.out.println("\n method2 with 2 parameters "+username+" "+pwd);
}
void method3(String username,String Pwd)
{System.out.println("\n method3 with 2 parameters "+username+" "+pwd);}
}

用于调用方法的代码段

    java.lang.reflect.Method method;
try
{
method= obj.getClass().getMethod(test,String.class,String.class);
method.invoke(obj,"user1","pwd");
}
catch (SecurityException e)
{System.out.println("SECURITY EXCEPTION :"+e);}
catch (NoSuchMethodException e)
{System.out.println("NoSuchMethodException EXCEPTION :"+e);}

其中测试=“方法1”/“方法2”/“方法3”
obj 是基类的对象
上面的代码抛出 NOSuchmethodException

最佳答案

如果你看一下javadoc对于 Class<?>你会看到getMethod(...)getMethods()仅返回公共(public)成员方法。

在您的代码中,这些方法不是公开的,因此找不到它们。您想使用的是 getDeclaredMethod(...) .

现在测试了一下,可以用。

关于Java反射调用多个参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37651132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com