-1
名前が文字列として渡されるクラスのSpecificDatumReaderを作成しようとしています。これらのクラスの1つを作成することができますが、このクラスのクラスを取得できますが、実際にテンプレート化されたオブジェクトを作成することはできません。Javaでは、型名からテンプレートオブジェクトを生成するにはどうすればよいですか?
String[] classList = conf.getClasslist(eventname);
decoders = new LinkedList<SpecificDatumReader>();
for (String className : classList)
{
Class<?> eventclass = Class.forName(className);
Object holder = eventclass.newInstance();
decoders.add(new SpecificDatumReader<WhatGoesHere?>(eventclass));
}
Javaにはテンプレート型がありません。ジェネリックはコンパイル時の型チェック機能です(* type erasure *も参照してください)。 –
生のタイプは使用しないでください。 – shmosel
(Elliottが言ったように)ジェネリックはコンパイル・タイプ・チェック機能なので、オブジェクトを作成するときにタイプ・パラメータが何であるかをプログラムに伝える必要はないと確信しています。とにかくリスト。だから、 'new SpecificDatumReader