2012-05-04 5 views
0

내가하려는 것은 메소드 이름을 모른 채 클래스에서 메소드를 실행하는 것이다. 클래스의 메서드 배열과 배열의 어떤 메서드인지에 대한 인덱스가 있지만 실제 메서드는 아닙니다. 이것은 내가 시도한 것입니다 ...하지만 실제로 어떻게 해야할지 모르겠습니다.클래스의 메서드 배열을 사용하여 클래스의 메서드를 어떻게 실행합니까?

Class blocks = Blocks.class; 
Method[] methods = blocks.getDeclaredMethods(); 
Blocks block = new Blocks(); 
String a = block.(methods[blockBox.getSelectedIndex()]); 

어쨌든 거기에 있습니까? 이 상황에 더 잘 부합하도록 코드를 다시 작성할 수도 없습니다. 인스턴스 메소드를 들어

답변

1

:

String a = (String) methods[blockBox.getSelectedIndex()].invoke(block); 

정적 메소드를 들면 :

String a = (String) methods[blockBox.getSelectedIndex()].invoke(null); 

이 방법은 반환 형식 문자열과 인덱스에

0

전화 invoke() 방법은 당신이 가지고 어떤 매개 변수를 가지고 제공 check this

관련 문제