在这段生成的导入器进入 Java 17 服务前,对它进行审查。
从不可信的两列 CSV 行导入唯一 ID;拒绝无效行但不暴露其内容;返回不可变结果;并以稳定 Java 17 源码编译。
Java
import java.util.*;
public class GeneratedImporter {
sealed interface ImportResult permits Imported, Rejected {}
record Imported(List<String> ids) implements ImportResult {}
record Rejected(String message) implements ImportResult {}
static ImportResult importRows(List<String> rows) {
var ids = new ArrayList<String>();
for (String row : rows) {
if (row.isBlank()) {
return new Rejected("Bad row: " + row);
}
String id = row.split(",")[0].trim();
if (!ids.contains(id)) ids.add(id);
}
return new Imported(ids);
}
static String message(ImportResult result) {
return switch (result) {
case Imported imported -> "Imported " + imported.ids().size();
case Rejected rejected -> rejected.message();
};
}
}
生成代码仅作示例,不代表任何特定模型