El ejemplo de este artículo describe cómo exportar archivos CSV utilizando los genéricos y la reflexión de Java. Compártelo con todos para tu referencia. Los detalles son los siguientes:
Existe la necesidad en el proyecto de exportar datos como un archivo CSV, porque diferentes clases tienen diferentes atributos. Para simplificar el código, apliqué los genéricos y la reflexión de Java y escribí una función para completar la función de exportación.
Copie el código de la siguiente manera: public <T> void saveFile(List<T> list, String outFile) throws IOException {
si (lista == nulo || lista.isEmpty()) {
devolver;
}
si (StringUtils.isEmpty(outFile)) {
lanzar una nueva IllegalArgumentException ("el archivo de salida es nulo");
}
booleano esPrimero = verdadero;
BufferedWriter out = nulo;
intentar {
salida = new BufferedWriter(new FileWriter(outFile));
para (T t: lista) {
StringBuilder sb1 = nuevo StringBuilder();
StringBuilder sb2 = nuevo StringBuilder();
Clase clazz = (Clase) t.getClass();
Campo[] fs = clazz.getDeclaredFields();
for (int i = 0; i < fs.length; i++) {
Campo f = fs[i];
f.setAccessible(verdadero);
intentar {
si (es primero) {
sb1.append(f.getName());
sb1.append(",");
}
Objeto val = f.get(t);
si (val == nulo) {
sb2.append("");
} demás {
sb2.append(val.toString());
}
sb2.append(",");
} captura (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
si (es primero) {
out.write(sb1.toString());
esPrimero = falso;
salida.newLine();
}
out.write(sb2.toString());
salida.newLine();
}
} captura (IOException e1) {
tirar e1;
} finalmente {
intentar {
si (fuera! = nulo) {
fuera.cerrar();
}
} captura (IOException e2) {
lanzar e2;
}
}
}
Espero que este artículo sea útil para la programación Java de todos.