리플렉션을 처음 사용하고 보호 된 생성자를 인스턴스화 할 때 어떤 실수를했는지 알 수 없습니다. 아래 코드는 JsonProcessingException의 생성자를 인스턴스화하는 코드입니다.리플렉션을 사용하여 보호 된 생성자를 인스턴스화 할 때 NoSuchMethodException
getDeclaredConstructor에 의해 NoSuchMethodException가 발생하고 있습니다 만,이 예외 클래스에는 1, 2, 3 개의 파라미터로 protected 생성자가 있습니다.
final Constructor<JsonProcessingException> constructor =
JsonProcessingException.class
.getDeclaredConstructor(Object.class, Object.class);
constructor.setAccessible(true);
내 가정 : 내가 proteted 가정하는 것도 인스턴스화 할 수 있어요, 그래서 우리가 반사를 사용하여 개인 생성자를 인스턴스화 할 수 있음을 읽었습니다.
참조 Object.class를에게 하나의 인자를 어떤 생성자를 얻기의 일반적인 방법을 전달되지 않는 이유는 무엇입니까? –
@Vishwanathgowdak no (인수 유형이 실제로 'Object'가 아니면). 인수 유형을 알아야합니다. 덜 엄격한 일치가 필요한 경우에는'getDeclaredConstructors()'를 트래버스하여 적합한 생성자를 찾으십시오 – vsminkov