나는 반사 아주 새로운 오전 I는 역시 같은 있습니다
AccessibleObject 클래스의 setAccessible 메서드 뒤에 boolean 매개 변수가있는 이유는 무엇입니까?
public void setAccessible(boolean flag) throws SecurityException
이 방법은 모든 필드 나 메소드의 새로운 접근을 나타내는 boolen
매개 변수 플래그를 가지고 있습니다. 우리는 클래스 외부에서 클래스의 private
방법에 액세스하려고하는 경우 예를 들어
우리는 getDeclaredMethod
를 사용하는 방법을 가져오고 true
로 접근성을 설정, 그래서 같이 호출 할 수 있습니다 : 시나리오에서 이제 method.setAccessible(true);
method.setAccessible(false);
을 사용해야합니다. 예를 들어 public
메소드가 있고 접근성을 false로 설정할 때 사용할 수 있습니다. 그러나 그 필요성은 무엇입니까? 내 이해가 명확한가요?
method.setAccessible(false)
의 아무 소용이 우리가 같은 방법 서명을 변경할 수있는 경우 :
public void setAccessible() throws SecurityException
당신은 코드의 프로그래머가 ** 의도하지 않은 상태에서 반사 아래 코드를 떠나고 싶어하지 않습니다 ** . 너? 검사를 위해 반사를 _unlock_ 코드 조각에 사용했습니다. 나중에 _unlocked_로 남기시겠습니까? –
예. 너의 요점을 알아 냈어. –
내 질문을 개선 할 수 있도록 의견을 말하면 좋겠다. –