我需要在 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/