java获取泛型类型T的declaredFields
我有一个泛型类,定义如下:
public class ExcelParser<T> {
private Workbook workbook;
public ExcelParser(InputStream is){
workbook = new HSSFWorkbook(new POIFSFileSystem(new ByteArrayInputStream(bytes)));
}
public List<T> retrieveRecordList() {
Field[] fields = T.class.getDeclaredFields();// here will give a error
}
}
我试图编写一个泛型类,将excel记录云解析为javabean list
,但我无法从泛型类型t获取declaredFields
,有什么方法可以做到这一点吗
# 1 楼答案
您应该将
Class<T>
存储在ExcelParser
类中,以便在运行时获取关于T
的元信息:# 2 楼答案
向构造函数添加字段classT和伪参数
并在没有dummyArguments的情况下调用构造函数
classT
被分配给Baz.class