在下面的代码中:
public class AvroReader<T> {
public AvroReader(Class type, File packetFile) throws IOException{
reader = new DataFileReader<>(packetFile,
new ReflectDatumReader<T>(ReflectData.get().getSchema(type)));
}
}
我想取消构造函数中的字段“type”,因为 type=T.class。如果只有编译器接受 getSchema(T.class) !
一个建议是使用:
Class<T> cls = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
我收到此错误:
java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType