자바 메 서 드 invoke 매개 변수 문제

1323 단어 자바
Method 에서 invoke (Object obj, Object... args) 의 첫 번 째 매개 변 수 는 클래스 의 인 스 턴 스 이 고 두 번 째 매개 변 수 는 해당 함수 중의 매개 변수 입 니 다. 제 가 호출 한 함 수 는 원래 다 중 매개 변수 (매개 변수 갯 수 불확실) 의 함수 인 데 어떻게 해 야 합 니까?
이렇게 호출 할 수 있 습 니 다: method. invoke (object, new Object [] [] {new Object [] {object 1, object 2});
이것 은 object. method (object 1, object 2) 에 해당 합 니 다.
아래 의 예 를 보십시오.
import java.lang.reflect.Array;
import java.lang.reflect.Method;

public class Test
{
    public void print(String string)
    {
        System.out.println("print(String string)");
        System.out.println(string);
    }

    public void print(String ... strings)
    {
        System.out.println("print(String ... string)");

        for(String string: strings)
            System.out.println(string);
    }

    public static void main(String[] args) throws Exception
    {
        Test test = new Test();

        // 调用 print(String string)
        Method method1 = test.getClass().getMethod("print", String.class);
        method1.invoke(test, "a");

        // 调用 print(String ... strings)
        Method method2 = test.getClass().getMethod("print", Array.newInstance(String.class, 0).getClass());
        method2.invoke(test, new String[][]{new String[]{"a", "b"}});
    }

}

좋은 웹페이지 즐겨찾기