2014-10-24 5 views
1

저는 자바 프로그래밍의 초보자이고 간단한 MXBean 서블릿을 작성하려고합니다. RuntimeMXBean에서 일부 데이터를 덤프하려고합니다. 아시다시피인터페이스에서 동적 메서드 호출

,이 인터페이스에 대한 몇 가지 방법은, 철있다 : - getVmName - getVmVendor 더 ..

내가 몇 메소드 이름을 가진 일부 배열을 만들고 나중에 전화 foreach 문을 사용하고자하는

하나씩 인쇄하고 그 가치를 인쇄하십시오.

불행히도 그것은 나를 위해 작동하지 않습니다. 내가 rmx.getVmVendor를 사용하는 경우

RuntimeMXBean rmx = ManagementFactory.getRuntimeMXBean(); 

: - 나는 obj.invoke 시도 는 getMethod 메소드 아무것도는 일반 클래스 또는 무언가 (미안 해요, 해요 멍청한 놈)

일부 코드처럼 작동하지 않는 것 같습니다() 모두 괜찮아요,하지만 어떻게 사용할 수 있습니다 (어쩌면 뭔가?) 문자열 이름이이 개체 (루프 필요)에 메서드를 호출 할 수 있습니다. 나는 glassfish 함께 최신 netbeans 사용하고 있습니다.

감사합니다.

답변

0
당신은 반사 API 사용할 수 있습니다

:

try { 
     Method method = rmx.getClass().getDeclaredMethod("aMethodName"); 
     Object result = method.invoke(rmx); 
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { 
     System.out.println(ex); 
} 
+0

내가 전에 그것을 시도 : java.lang.IllegalAccessException : 클래스 com.test.jmx이 수정 "공개"로 클래스 sun.management.RuntimeImpl의 멤버에 액세스 할 수 있습니다 – makowiecki

관련 문제