O exemplo neste artigo descreve como exportar arquivos CSV usando genéricos e reflexão Java. Compartilhe com todos para sua referência. Os detalhes são os seguintes:
Há uma necessidade no projeto de exportar dados como um arquivo CSV, pois diferentes classes possuem atributos diferentes. Para simplificar o código, apliquei os genéricos e a reflexão do Java e escrevi uma função para completar a função de exportação.
Copie o código da seguinte forma: public <T> void saveFile(List<T> list, String outFile) throws IOException {
if (lista == nulo || lista.isEmpty()) {
retornar;
}
if (StringUtils.isEmpty(outFile)) {
throw new IllegalArgumentException("arquivo de saída é nulo");
}
booleano éPrimeiro = verdadeiro;
BufferedWriter out = null;
tentar {
out = new BufferedWriter(new FileWriter(outFile));
para (T t: lista) {
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
Classe clazz = (Classe) t.getClass();
Campo[] fs = clazz.getDeclaredFields();
for (int i = 0; i < fs.length; i++) {
Campo f = fs[i];
f.setAccessible(verdadeiro);
tentar {
if (éPrimeiro) {
sb1.append(f.getName());
sb1.append(",");
}
Objeto val = f.get(t);
if (val == nulo) {
sb2.append("");
} outro {
sb2.append(val.toString());
}
sb2.append(",");
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
if (éPrimeiro) {
out.write(sb1.toString());
éPrimeiro = falso;
out.newLine();
}
out.write(sb2.toString());
out.newLine();
}
} catch (IOException e1) {
jogue e1;
} finalmente {
tentar {
if (fora! = nulo) {
out.close();
}
} catch (IOException e2) {
jogue e2;
}
}
}
Espero que este artigo seja útil para a programação Java de todos.