리플렉션을 통해 프라이빗 메서드에 액세스하는 것에 대한 Java의 제한에도 불구하고 이러한 제한을 극복할 수 있는 솔루션이 있습니다. 리플렉션을 통해 프라이빗 메서드를 호출하려면 다음 접근 방식을 활용할 수 있습니다.
먼저 getMethod(String methodName) 대신 getDeclaredMethod(String methodName)를 사용하여 프라이빗 메서드를 가져옵니다. 이 메소드를 사용하면 현재 클래스 내에 선언된 공개 메소드와 비공개 메소드 모두에 액세스할 수 있습니다.
그런 다음 비공개 메소드에 대한 기본 액세스 제한을 우회하려면 setAccessible(booleanaccessible) 메소드를 사용하여 접근성을 부여합니다. accessable을 true로 설정하면 보호 설정을 무시하고 프라이빗 메서드 호출을 허용할 수 있습니다.
마지막으로 원하는 개체 및 필수 개체와 함께 호출(Object object, Object... args)을 사용하여 프라이빗 메서드를 호출합니다. 인수.
다음은 원본에 제공된 코드의 업데이트된 버전입니다. 질문:
Method method = object.getClass().getDeclaredMethod(methodName); method.setAccessible(true); Object r = method.invoke(object);
주의 사항:
위 내용은 액세스 제한에도 불구하고 Java에서 리플렉션을 사용하여 개인 메서드를 호출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!