この記事の例では、Java ジェネリックとリフレクションを使用して CSV ファイルをエクスポートする方法について説明します。皆さんの参考に共有してください。詳細は以下のとおりです。
プロジェクトではデータを CSV ファイルとしてエクスポートする必要があります。これは、コードを簡素化するために、Java のジェネリックスとリフレクションを適用し、エクスポート関数を完成させる関数を作成しました。
次のようにコードをコピーします。 public <T> void saveFile(List<T> list, String outFile) throws IOException {
if (list == null || list.isEmpty()) {
戻る;
}
if (StringUtils.isEmpty(outFile)) {
throw new IllegalArgumentException("outfile is null");
}
ブール値 isFirst = true;
BufferedWriter 出力 = null;
試す {
out = new BufferedWriter(new FileWriter(outFile));
for (T t : リスト) {
StringBuilder sb1 = 新しい StringBuilder();
StringBuilder sb2 = 新しい StringBuilder();
クラス clazz = (クラス) t.getClass();
フィールド[] fs = clazz.getDeclaredFields();
for (int i = 0; i < fs.length; i++) {
フィールド f = fs[i];
f.setAccessible(true);
試す {
if (isFirst) {
sb1.append(f.getName());
sb1.append(",");
}
オブジェクト val = f.get(t);
if (val == null) {
sb2.append("");
} それ以外 {
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();
}
} キャッチ (IOException e1) {
e1 をスローします。
} ついに {
試す {
if (out != null) {
out.close();
}
キャッチ (IOException e2) {
e2 をスローします。
}
}
}
この記事が皆さんの Java プログラミングに役立つことを願っています。