Я пытаюсь написать общий метод, который выглядит следующим образом:
private static <T> Class<? extends T> immutableVersionOfClass(Class<T> clazz) {
return new ByteBuddy()
.subclass(clazz)
.method(not(returns(VOID)))
.intercept(to(GetterInterceptor.class))
.method(returns(VOID))
.intercept(to(SetterInterceptor.class))
.make()
.load(clazz.getClassLoader())
.getLoaded();
}
но когда последний класс передается в качестве аргумента, я получаю исключение:
java.lang.IllegalArgumentException: Cannot subclass primitive, array or final types
Я бы хотел, чтобы мой метод мог создавать подклассы и для финальных классов. Есть ли решение этой проблемы?