您好我陷入了以下问题,我在if(files !=null)
中遇到了一个checkstyle异常。所以它也无法编译。
这是我的代码:
private void printBeforeData(final int svrID, final PrintStream ps, final File dir) throws RemoteException {
// 「p[サーバID].csv」は、メモリ上のデータを使用して生成するので、除く
final String regexField = ELECTRIC_FILE + svrID + "\\.csv\\.[0-9]+$";
final File[] files = dir.listFiles((final File dirToFilter, final String filename) ->
filename.matches(regexField));
if (files != null) {
// 昇順でソート
final List<File> listFiles1 = Arrays.asList(files);
Collections.sort(listFiles1, (f1, f2)
-> ElectricPowerManager.getSuffixNo(f1) - ElectricPowerManager.getSuffixNo(f2));
final StringBuilder strings = new StringBuilder();
for (final File file: listFiles1) {
try (BufferedReader br = Files.newBufferedReader(file.toPath())) {
int cnt = 0;
for (String line = br.readLine(); line != null; line = br.readLine()) {
strings.append(line);
strings.append(LINE_BREAK);
cnt++;
if (cnt == CASH_ROW) {
// 一定数溜め込んでからファイル出力
ps.print(strings.toString());
strings.delete(0, strings.length());
cnt = 0;
}
}
if (cnt > 0) {
ps.print(strings.toString());
strings.delete(0, strings.length());
}
} catch (final IOException e) {
core.putSystemLog(this.getClass().getSimpleName() + "#" + METHOD_PRINT_BEFORE_DATA +
" Failed print Electric Data. serverID:" + svrID, e);
}
}
}
}
答案 0 :(得分:0)
final File[] files = dir.listFiles((final File dirToFilter, final String filename) - filename.matcheS(regexField));
1)没有人(编译器和你都没有)理解从参数列表(- filename.matcheS(regexField))
)中减去布尔值意味着什么。再想一想你想要做什么。
2)你在参数列表的中间定义了变量(final File
,final String
),你应该在这里使用表达式(比如已经定义过的,并且在其他地方设置了值,或者常量)。我敢打赌你把方法调用与定义混淆(或者你只是忘了完成IDE自动生成的代码)。