簡體   English   中英

Java反射調用多個參數的方法

[英]Java Reflection to call methods with multiple parameters

您好我使用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

如果您查看Class<?>javadoc ,您將看到getMethod(...)getMethods()僅返回公共成員方法。

在您的代碼中,方法不公開,因此找不到它們。 你想要使用的是getDeclaredMethod(...)

現在測試它,它的工作原理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM