У меня есть два метода, которые почти идентичны. Я хотел бы знать, есть ли способ объединить эти 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