Das Beispiel in diesem Artikel beschreibt, wie CSV-Dateien mithilfe von Java-Generika und Reflection exportiert werden. Teilen Sie es als Referenz mit allen. Die Einzelheiten lauten wie folgt:
Im Projekt besteht die Notwendigkeit, Daten als CSV-Datei zu exportieren, da verschiedene Klassen unterschiedliche Attribute haben. Um den Code zu vereinfachen, habe ich Javas Generika und Reflektion angewendet und eine Funktion geschrieben, um die Exportfunktion zu vervollständigen.
Kopieren Sie den Code wie folgt: public <T> void saveFile(List<T> list, String outFile) throws IOException {
if (list == null || list.isEmpty()) {
zurückkehren;
}
if (StringUtils.isEmpty(outFile)) {
throw new IllegalArgumentException("outfile is null");
}
boolean isFirst = true;
BufferedWriter out = null;
versuchen {
out = new BufferedWriter(new FileWriter(outFile));
für (T t : Liste) {
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
Klasse clazz = (Klasse) t.getClass();
Field[] fs = clazz.getDeclaredFields();
for (int i = 0; i < fs.length; i++) {
Feld f = fs[i];
f.setAccessible(true);
versuchen {
if (isFirst) {
sb1.append(f.getName());
sb1.append(",");
}
Objektwert = f.get(t);
if (val == null) {
sb2.append("");
} anders {
sb2.append(val.toString());
}
sb2.append(",");
} Catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
if (isFirst) {
out.write(sb1.toString());
isFirst = false;
out.newLine();
}
out.write(sb2.toString());
out.newLine();
}
} Catch (IOException e1) {
wirf e1;
} Endlich {
versuchen {
if (out != null) {
out.close();
}
} Catch (IOException e2) {
wirf e2;
}
}
}
Ich hoffe, dass dieser Artikel für die Java-Programmierung aller hilfreich sein wird.