Creating a class at runtime on Android

I need to create a class that extends an abstract class at runtime on Android. I really need to create something like this:

Class A extends AbstractClass{

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

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

I want to create this at runtime . Is it possible?

+3
source share
2 answers

In "traditional" Java, you can create and compile classes at runtime, or use bytecode generators such as ASM to grow or generate class files.

However, you need to keep in mind that Android is not a Java virtual machine. When you create an APK, class files are converted to specialized bytecode that is processed by the Android Dalvik virtual machine.

-, Dalvik, , ( ) , .

Dexmaker, . .

+3

A . . fieldFromAbstractClass AbstractClass .

    AbstractClass a = new AbstractClass() {
        @Override
        public void aMethodFromAbstractClass() {
           // ...
        }
    }
    a.setFieldFromAbstractClass( someValue );
// do something with A

, . Java.

0

All Articles