我正在尝试迁移Spring批处理核心v 2.1.8。发布到4.0.3(使用maven项目而不是Spring Boot),我看到我的代码正在破裂,我真的需要使事情与这个最新版本一致
错误:
类型DelimitedLineTokenizer中的setDelimiter(String)方法不适用于参数(char)
类型不匹配:不能从String转换为char
代码:
import org.springframework.batch.item.file.LineCallbackHandler;
import org.springframework.batch.item.file.transform.FieldSet;
public class HeaderCallbackTokenizer extends InterningDelimitedLineTokenizer implements LineCallbackHandler {
private char delimiter = DELIMITER_COMMA;
@Override
public void setDelimiter(char delimiter) {
super.setDelimiter(delimiter);
this.delimiter = delimiter;
}
@Override
public void handleLine(String line) {
if (line.startsWith("X" + delimiter)) {
List<String> names = doTokenize(line);
names.set(0, "TYPE");
setNames(names.toArray(new String[0]));
}
}
@Override
public FieldSet tokenize(String line) {
return super.tokenize(line);
}
}
这在https://github.com/spring-projects/spring-batch/pull/61中发生了变化。您需要更新代码以传递String
而不是char
。这是您迁移工作的一部分。
顺便说一句,我会而不是在任何迁移路径中跳过一个主要版本(在您的情况下是v3),以便在迁移的每个步骤中尽量减少版本之间的差距。