2011-07-29 12 views
1

런타임에 지정된 멤버의 액세스 한정자를 변경할 수있는 언어가 있습니까?동적 액세스 한정자

예를 들어 개체가 사용되는 컨텍스트에 따라 정보를 숨기거나 표시합니다.

답변

0

대부분의 언어가이를 수행 할 수 있지만 종종 성능 저하가 있습니다. 예를 들어, 다음을 사용하여 Java에서 개인 생성자의 액세스 가능성을 변경할 수 있습니다.

Constructor constructor = MyClass.class.getDeclaredConstructor(paramTypes); 
constructor.setAccessible(true); 
MyClass instance = (MyClass)constructor.newInstance(params); 

좋아하는 언어의 클래스 객체에서 사용할 수있는 방법을보고 당신은 방법이나 필드에서 얻을 수있는 여러 가지 방법을 볼 수 있습니다, 그리고 당신이 그에 핸들을 한 후에는 그들을 학대 할 수 있습니다 너의 마음의 내용.

+0

나는이 솔루션을 알고 있었지만 private 필드에 액세스 할 수 있으며 (여전히 private 임) 액세스 권한을 공개에서 비공개로 전환하거나 그 반대로 전환 할 수 없습니다. – anonymvs

관련 문제