수업의 개인 방법을 쉽게 호출 할 수 있다면 캡슐화가 만료되었음을 의미합니까? 최근에, 나는 Java의 반사 메커니즘을보고 있었고 실제로 Java의 반사 메커니즘을 사용하여 다른 클래스의 개인 방법을 호출 할 수 있음을 발견했습니다. 이것이 할 수있는 일에 관해서는 사람들의 의견에 달려 있습니다. .
내가 쓴 간단한 예제 코드는 다음과 같습니다.
import java.lang.reflect.invocationTargetexception; import java.lang.reflect.method;/** * @author thomaslwq * @version 생성 시간 : 2012 년 9 월 4 일 9:53:49 PM * 클래스 설명 */public static void setobjectColor (Object Ovj), nosuchmecte, nosuchmecte, nosuchmecte 불법 행위, 불법 *** ception, invocationTargetexception {class cls = obj.getClass (); // 클래스 메소드의 개인 메소드를 가져옵니다 메소드 방법 = cls.getDeclaredMethod ( "privatemethod", null); method.setAccessible (true); // 설정없이 오류가보고됩니다. //이 메소드를 호출합니다. invoke (obj, null); } public static void main (String args [])은 보안 렉스크, 불법 행위, nosuchmethodexception, 불법 *** ception, invocationTargetexception {setObjectColor (new mytest ()); }} // test class mytest {public void setmytest () {system.out.println ( "setmytest"); } / ** 클래스의 개인 방법 ** / 개인 void privatemethod () {System.out.println ( "private method"); }}Java 반사 메커니즘을 사용하여 클래스를 호출하는 위의 개인 방법 (권장)은 내가 공유하는 모든 콘텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.