微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ByteBuddy如何在Android中创建另一个ByteBuddy创建的类的子类?

如何解决ByteBuddy如何在Android中创建另一个ByteBuddy创建的类的子类?

我正在使用byte-buddy:1.10.17byte-buddy-android:1.10.17为Android编写Java代码来动态创建类。我想动态创建一个类,该类将是另一个动态创建的类的子类。 这是我想要做的示例代码

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,但它根本不起作用。

解决方法

不要使用Test的类加载器。那将在您的类路径中寻找一个类文件。动态类TestParentClass将没有任何对象。而是从TestParentClass获取类加载器:

$.extend($.fn.dataTable.defaults,{
    serverSide: false,});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。