【发布时间】:2019-01-31 09:30:05
【问题描述】:
我正在尝试编写一个如下所示的通用方法:
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
我希望我的方法能够继承最终类。这个问题有什么解决方法吗?
【问题讨论】:
标签: java byte-buddy bytecode-manipulation final-class