Open NuhGnod opened 10 months ago
Item 3 에서 잠깐 나왔더라구요! 이 메소드는 private생성자를 호출하는 메소드라고 되어있었습니다. Item 3 이 private생성자나 열거 타입으로 싱글턴임을 보증하라. 라는 부분인데 생성자를 private로 생성하면 인스턴스가 하나뿐임이 보장되지만 AccessibleObject.setAccessible로 호출하는 예외가 존재한다고 나옵니다.
privateMethodXX.setAccessible(true/false)
이런식으로 외부에서의 접근을 설정할 수 있는 것 같은데 정확한 사용법은 잘 모르겠네요ㅠㅠ
final Field field = String.class.getDeclaredField("value");
field.[setAccessible](https://www.tabnine.com/code/java/methods/java.lang.reflect.AccessibleObject/setAccessible)(true);
try {
final char[] chars = (char[]) field.get(data);
final int len = chars.length;
for (int i = 0; i < len; i++) {
if (chars[i] <= ' ') {
doThrow();
}
}
return len;
} catch (Exception ex) {
throw new RuntimeException(ex);
}
p.477 하단의 AccessibleObject.setAccessible 의 메소드는 무엇인지 궁금합니다..!