首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ByteBuddy如何在安卓中创建另一个ByteBuddy创建的类的子类?

ByteBuddy如何在安卓中创建另一个ByteBuddy创建的类的子类?
EN

Stack Overflow用户
提问于 2020-10-27 04:16:00
回答 1查看 102关注 0票数 1

我正在为android编写一个java代码,使用byte-buddy:1.10.17byte-buddy-android:1.10.17来动态创建类。我想动态创建一个类,它将是另一个动态创建的类的子类。下面是我想要做的事情的示例代码

代码语言:javascript
复制
AndroidClassLoadingStrategy loadingStrategy = new AndroidClassLoadingStrategy.Wrapping(context.getCacheDir());

DynamicType.Builder builder = new ByteBuddy().subclass(Object.class).name("TestParentClass");

Class testParentClass = builder.make().load(Test.class.getClassLoader(), loadingStrategy).getLoaded();

builder = new ByteBuddy().subclass(testParentClass).name("TestChildClass");

Class testChildClass = builder.make().load(Test.class.getClassLoader(), loadingStrategy).getLoaded();

但是我在创建子类时得到了Caused by: java.lang.ClassNotFoundException: Didn't find class "TestParentClass"

我也检查过this question,但它根本不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-27 04:29:21

不要使用Test的类加载器。它将在类路径中查找类文件。动态类TestParentClass将没有。相反,可以从TestParentClass获取类加载器:

代码语言:javascript
复制
Class testChildClass = builder.make().load(testParentClass.getClassLoader(), loadingStrategy).getLoaded();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64544355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档