类型DelimitedLineTokenizer中的方法SetDelimiter(String)不适用于参数(char)-Spring Batch
我正在尝试迁移弹簧批量核心v 2.1.8.Release至4.0.3 (使用Maven Project而不是Spring Boot),我看到我的代码正在破裂,我真的需要使事情与之一致此最新版本以及
错误:
类型DelimitedLineTokenizer中的方法setDelimiter(String)不适用于参数(char)
类型不匹配:无法从字符串转换为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);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在。您需要更新代码以传递
String
而不是char
。这是您迁移工作的一部分。顺便说一句,我不会在任何迁移路径中跳过主要版本(V3),以最大程度地减少迁移的每个步骤中版本之间的差距。
This has changed in https://github.com/spring-projects/spring-batch/pull/61. You need to update your code to pass a
String
instead ofchar
. This is part of your migration work.And BTW, I would not skip a major version (v3 in your case) in any migration path in order to minimize the gap between versions in each step of the migration.