Contoh dalam artikel ini menjelaskan cara mengekspor file CSV menggunakan generik dan refleksi Java. Bagikan dengan semua orang untuk referensi Anda. Dengan rincian sebagai berikut:
Ada kebutuhan dalam proyek untuk mengekspor data sebagai file CSV, karena kelas yang berbeda memiliki atribut yang berbeda, untuk menyederhanakan kode, saya menerapkan generik dan refleksi Java dan menulis fungsi untuk menyelesaikan fungsi ekspor.
Salin kode sebagai berikut: public <T> void saveFile(List<T> list, String outFile) throws IOException {
if (daftar == null || daftar.isEmpty()) {
kembali;
}
if (StringUtils.isEmpty(outFile)) {
throw new IllegalArgumentException("file keluar adalah null");
}
boolean isFirst = benar;
BufferedWriter keluar = null;
mencoba {
keluar = BufferedWriter baru(FileWriter baru(outFile));
untuk (T t : daftar) {
StringBuilder sb1 = StringBuilder baru();
StringBuilder sb2 = StringBuilder baru();
Kelas clazz = (Kelas) t.getClass();
Bidang[] fs = clazz.getDeclaredFields();
for (int i = 0; i < fs.panjang; i++) {
Bidang f = fs[i];
f.setAccessible(benar);
mencoba {
jika (adalahPertama) {
sb1.append(f.getName());
sb1.tambahkan(",");
}
Objek val = f.get(t);
jika (val == nol) {
sb2.tambahkan("");
} kalau tidak {
sb2.append(val.toString());
}
sb2.tambahkan(",");
} tangkapan (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
jika (adalahPertama) {
keluar.tulis(sb1.toString());
isPertama = salah;
keluar.newLine();
}
keluar.tulis(sb2.toString());
keluar.newLine();
}
} tangkapan (IOException e1) {
lempar e1;
} Akhirnya {
mencoba {
jika (keluar!= null) {
keluar.dekat();
}
} tangkapan (IOException e2) {
lempar e2;
}
}
}
Saya harap artikel ini bermanfaat untuk pemrograman Java semua orang.