test()
메소드가 public
일 때이 프로그램이 올바르게 실행되었지만 수정자를 private
으로 변경하자마자 런타임 오류가 발생했습니다. 이유를 설명 할 수있는 사람이 있습니까? 당신이 setAccessible(true)
도 getDeclaredMethod
경우 반환 private 메소드를 호출 할 필요가 여기 왜리플렉션 API의 메소드 클래스
package ObjectClass;
import java.lang.reflect.Method;
public class reflect8 {
public static void main(String[] args) throws Exception {
Class c1 = Class.forName("ObjectClass.Reflect8A");
Object obj = c1.newInstance();
Method m1 = c1.getDeclaredMethod("test");
m1.invoke(obj);
}
}
class Reflect8A {
private void test() {
System.out.println("from test...");
}
}
는 않습니다 물론 또한 http://stackoverflow.com/questions/19135218/invoke-private-method-with-java-lang-invoke-methodhandle – Raedwald
음을 참조하십시오. '사적인'이 무엇을 의미하는지 아십니까? – Raedwald