Я хотел бы иметь возможность реализовать метод во время выполнения, который вызывается до того, как объект запускает инициализаторы. Это позволит мне устанавливать поля, которые используются во время инициализации.Возможно ли создать анонимный класс при использовании отражения?
Вот пример:
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 путь.
yes ............... – Matt
Прошу прощения удачи. Если - это интерфейс, вы могли бы взглянуть на динамические прокси, как предположил Кэти Ван Стоун, поскольку вы можете перехватить * все * вызовы таким образом. – EJP
обновил мой вопрос с помощью вашего редактирования. ... спасибо – Matt