인터페이스 대신 클래스 용 프록시를 만들고 싶습니다. 이 목적을 위해 cglib 또는 Javassist를 사용하는 방법에 대한 대답이 있지만 (예 : https://stackoverflow.com/a/4449998/) 프록시에 관심이있는 클래스에 인수가없는 생성자가 없으므로 주름이 생겨서 Enhancer.create()
이 예외를 throw합니다. Javassist ProxyFactory
javadoc을 보면 생성자 인수도 필요합니다.인수가없는 생성자가없는 클래스에 대한 동적 프록시 만들기
명백한 해결 방법은 리플렉션 (reflection)과 nulls/0/등의 배열을 전달하여 생성자 인수 유형을 찾는 것입니다. 그러나 생성자가 예외를 throw하는 경우에는 작동하지 않습니다.
다른 라이브러리를 사용하는 것이 더 나은 대안이 있습니까?
아, 그래서 cglib/javassist/ByteBuddy를 사용하여 프록시 클래스를 만든 다음 Objenesis로 인스턴스를 생성 하시겠습니까? –
예. 그것이 당신이하는 일입니다. –