Возможно ли создать анонимный класс при использовании отражения?

Я хотел бы иметь возможность реализовать метод во время выполнения, который вызывается до того, как объект запускает инициализаторы. Это позволит мне установить поля, которые используются во время инициализации.

Вот пример:

class A {
  public A() {
    initialize();
  }
  public void initialize() { }
}

class B extends A {
  public String message;
  {
    System.out.println(message);
  }
}

public class MainClass {
  public static void main(final String[] args) throws Exception {

    Class<A> aClass = (Class<A>)Class.forName(args[0]);
    // what's next in order to something like this even though
    // I don't know what subclass of A was passed in as an
    // argument above 
    A a = aClass.newInstance()
    {
      public void initialize() {
        this.message = args[1];
      }
    };
  }
}

Я, вероятно, буду использовать аспекты, но я хотел бы знать, есть ли способ на чистом Java.

7
задан Matt 16 April 2011 в 16:39
поделиться