java - 在 Android 运行时创建一个类

标签 java android class runtime

我需要在 Android 的运行时创建一个扩展抽象类的类。 我真正需要的是生成这样的东西:

Class A extends AbstractClass{

    A(){
         super("A name that is saved on AbstractClass");
         fieldFromAbstractClass =...
    }

    @Override
    public void aMethodFromAbstractClass(){
       //some code....
    }
}

我想在运行时 生成它。这可能吗?

最佳答案

在“传统”Java 中,您可以在运行时创建和编译类,或使用字节代码生成器(例如 ASM)来扩充或生成类文件。

但是,您需要记住,Android 不是 Java 虚拟机。当您创建 APK 时,类文件会转换为由 Android 的 Dalvik 虚拟机处理的专用字节码。

我不知道 Dalvik 特定的运行时字节码生成器,所以我认为(目前)不可能执行您所描述的操作。

编辑

有一个图书馆叫Dexmaker ,这可能会实现这一点。我是从this related answer发现的.

关于java - 在 Android 运行时创建一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10675095/

相关文章:

java - 在 Eclipse 中使用 yGuard 混淆库

java - 如何使 Vertx Reactive RecordParser 发出没有长度的消息?

android - 如何使用安卓ViewPager?

c++ - 什么时候必须使用友元函数而不是成员函数?

python - 为什么两个类实例似乎共享相同的数据?

java - 使用 ObjectInputStream 检查 Socket 中是否有可用对象

java - ConstraintValidatorContext 定义自定义错误消息

android - 找不到 firebase-messaging.jar - Android 构建错误

android - 在语音通话中使用文字转语音

javascript - 在实例对象内的函数中获取类(this)的实例 - typescript /Angular