![](/img/trans.png)
[英]ByteBuddy how to create a subclass of another ByteBuddy created Class in Android?
[英]Bytebuddy - subclass a final class
我正在嘗試編寫一個如下所示的泛型方法:
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.lang.IllegalArgumentException: Cannot subclass primitive, array or final types
最終類。 這個問題有解決方法嗎?
沒有辦法繼承最終的類。 它被語言規范所禁止。
ByteBuddy在很大程度上尊重語言規范,所以即使你想擴展一個最終的類,除非你能夠操縱你想要覆蓋的類的字節代碼而不是 final
,否則你不能 ,盡管那時你是弄亂你真的不應該做的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.