Byte Buddy를 사용하여 일부 메소드의 가시성을 변경할 수 있습니까? 개인 정적 메서드가있는 사용자 클래스가 있고 이러한 메서드는 일부 호출을 위임 할 필요가 있지만 개인 있기 때문에 현재 실패합니다. 그래서 public modifier를 추가하여 앞에서 설명한 메소드를 변환하여 사용자 클래스를 다시 정의 할 수 있을지 궁금합니다. 하지 효과로 대상 Java 메소드에 setAccessible(true)
메소드를 호출 기록을 위해 메소드의 가시성 변경
java.lang.IllegalStateException: class net.bytebuddy.renamed.java.lang.Object$ByteBuddy$VHdvjIkb cannot see private java.lang.String org.mockaccino.MockaccinoTest.lambda$3() throws java.lang.Exception
at net.bytebuddy.implementation.MethodCall$MethodInvoker$ForContextualInvocation.invoke(MethodCall.java:2387)
...
하지만, 내 경우에는 필요하지 않은 방법을 도구로 사용할 필요가 있습니다.
예 :
byteBuddy.redefine(targetClass)
.method(ElementMatchers.named(targetMethod.getName()))
.intercept(???)
.transform(Transformer.ForMethod.withModifiers(Visibility.PUBLIC))
.make()
.load(getClassLoader(), ClassReloadingStrategy.fromInstalledAgent());
내 질문은 : 재정의 소스 방식의 몸을 호출 할 수있는 인터셉터가?
또는 대상 메서드를 공개적으로 볼 수있는 다른 방법이 있습니까?