次のコードでは、java.lang.InstantiationException を取得しています。
(以下は、スタンドアロンでコンパイルされるコードを縮小したものです。私のアプリケーションでは、Enum->Class マップを維持し、ファイルから整数値を読み取るときに、マップを調べて適切なクラスをインスタンス化したいと考えています)。
エラーを取り除く方法は?構文の問題はありますか? インターフェイスを使用する必要がありますか? ここでの私の理解は限られています。
class Main {
abstract class Base {
Base() {};
void print() {
System.out.println("I am in Base");
}
}
class D1 extends Base {
D1() {};
@Override
void print() {
System.out.println("I am in D1");
}
}
static Class<? extends Base> getMyClass() {
return D1.class;
}
public static void main(String[] args) {
try {
Class<?> cc = getMyClass();
Object oo = cc.newInstance();
Base bb = (Base) oo;
bb.print();
} catch (Exception ee) {
System.out.println(ee);
};
}
};