私はほぼ同じ2つのメソッドを持っています。私はこれらの2つのメソッドを1に組み合わせる方法があるかどうかを知りたいと思います。両方のタイプのマップをパラメータとして取ることができます。このメソッドは、Excelファイルに書き込みます。キーはExcelヘッダーです(すべてのキーが最初の行に表示されます)。マップされたリストは各キー(データ)の下のすべてです。どんなユニークなアイデアですか?Javaは同じ目的のためにメソッドの重複を防ぐ - 異なるパラメータ
private void test(Sheet sheet, HashMap<String, List<Double>> map) {
for (String var : map.keySet()) {
int rowNumb=0;
Row row = sheet.getRow(rowNumb);
Cell cell = row.createCell(currColumn);
cell.setCellValue(var);
rowNumb++;
List<Double> list = map.get(var);
for (int i = 0; i < list.size(); i++) {
row = sheet.getRow(rowNumb);
cell = row.createCell(currColumn);
cell.setCellValue(list.get(i));
}
currColumn++;
}
}
private void test(Sheet sheet, HashMap<String, List<String>> map) { <-- takes in String list rather thand Double.
for (String var : map.keySet()) {
int rowNumb=0;
Row row = sheet.getRow(rowNumb);
Cell cell = row.createCell(currColumn);
cell.setCellValue(var);
rowNumb++;
List<String> list = map.get(var); <---- Only thing that is different
for (int i = 0; i < list.size(); i++) {
row = sheet.getRow(rowNumb);
cell = row.createCell(currColumn);
cell.setCellValue(list.get(i));
}
currColumn++;
}
}
最初のアイデア:ジェネリックを使用してください。質問: 'currColumn'と' row'と 'cell'は何ですか?それらはどこに定義されていますか? – luk2302
ああ、私は読みやすくするために、メソッドの前半でいくつかのものを取り出しました。 –
おそらくうまくいかないかもしれませんが、このツールを試すことができます:https://pmd.github.io/pmd-5.5.2/usage/cpd-usage.html – Zack