オブジェクトが初期化子を実行する前に呼び出されるメソッドを実行時に実装できるようにしたいと思います。これにより、初期化中に使用されるフィールドを設定できます。
次に例を示します。
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の方法があるかどうかを知りたいと思います。