2010-08-05 10 views
0

예를 들어, 나는라는 변수 ("법")이 String의가 있지만, 나는 같은 것을 할 싶습니다 ....Java에서 동적으로 호출되는 메서드를 만들 수 있습니까?

obj.method(); //The object called the method(); 

하지만 난 .method을 변경하려면 동적 메서드에, 즉, 변수에 대한 메서드 기반을 호출하려고합니다.

method = ".toString()"; 

날 오브젝트에이 문자열을 전달하는 데 도움이 어떤 방법이 있는가, 그리고 객체는 방법 만약

obj.toString(); 

를 호출합니다 : 예를 들어, 내가하면 나는 같은 것을 할 나는 그것이

obj.toChar(); 
라고 할

method = ".toChar()"; 

입니다

어떻게해야합니까? 고맙습니다.

+5

당신은 (답변을 볼 수 있습니다.) 그러나 정기적으로해서는 안됩니다. Java는 정적으로 형식이 지정되므로이 이점을 사용해야합니다. – Bozho

답변

0

반사가 방법입니다. 여기에 starting poin이 있습니다.

튜토리얼 here을 참조하십시오.

5

리플렉션 API를 사용합니다. 귀하의 경우에는 다음과 같을 것입니다 :

String method = "toString"; 
Class<Obj> objClass = obj.getClass(); 
Method m = objClass.getMethod(method); 
m.invoke(obj); 

테스트되었지만 작동해야합니다. 그렇지 않으면 문서에서 조금 읽으십시오.

Java에서 작업을 수행하는 방법이 항상 잘못된 것은 아닙니다.

+3

+1 "자바에서 일을 잘못하는 경우가 종종 있습니다" – helpermethod

+1

다행입니다. 내 경험에 비추어 볼 때 특히 초보자와 역동적 인 언어를 사용하는 사람들은 부적절한 방식으로 리플렉션을 사용하는 경향이 있습니다. – musiKk

관련 문제