I would like to be able to implement a method at runtime that is called before an object runs the initializers. This will allow me to set fields that are used during initialization.
Here is an example:
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];
}
};
}
}
I will probably end up using aspects, but I would like to know if there is a pure Java way.