-1
我想创建一个SpecificDatumReader类的名字是作为一个字符串传入的。我可以创建这些类中的一个,并且我可以获得此类的Class,但其中没有一个允许我创建模板对象。在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所说)泛型是一种编译类型检查功能,我不相信当你创建对象时你需要告诉程序类型参数是什么,因为它不会被存储在你的无论如何。所以只是'新的SpecificDatumReader