当前位置: 首页 > 知识库问答 >
问题:

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

谷梁博易
2023-03-14

大家好,我正在使用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);}    

其中test=“method1”/“method2”/“method3”
obj是基类的对象
上面的代码抛出的是NOSuchmethodException

共有1个答案

万楷
2023-03-14

如果你看一下类的javadoc

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

现在已经测试过了,而且有效。

 类似资料:
  • 虽然知道使用反射不是一种好的测试方法,但我正在尝试测试我的代码。我有一个外部类作为public,有一个私有的内部类和一个公共方法,如下所示, 我的主要java类如下所示 这是投掷 线程“main”java中出现异常。lang.NoSuchMethodException:汽车。外部$内部。java上的test()。lang.Class。car上的getDeclaredMethod(Class.jav

  • 我用java反射写了下面的代码。在这段代码中,我调用了有参数的方法1(),代码运行时没有错误。没关系。但是我如何调用没有参数的方法2()和方法3()呢?如何在java反射中调用没有参数的方法?Java支持这样的功能吗?

  • 我有一个方法如下: 为了通过反射调用此函数,我尝试了以下代码段,但结果不成功: 那么,有没有一种方法可以通过Java反射调用像findEntity这样的方法? 谢谢

  • 我在MatrixOperation类中定义了这个方法: 我需要使用反射调用这个方法 我尝试了这种方法,但我得到了一个: 如何做到这一点?

  • 我目前试图通过反射执行一个方法,但方法参数只是一个列表。 该方法如下所示: 但Java对待他们就像 问题是参数的长度不同,该方法可以有任意数量的参数。 有没有办法解决这个问题?

  • 我正在使用mockito并使用java6和Spring进行开发。