java - 如果发现预期的EOF

标签 java lambda compiler-errors file-handling checkstyle

嗨,我陷入了以下问题,我在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);
            }
        }
    }
}

最佳答案

final File[] files = dir.listFiles((final File dirToFilter, final String filename) - filename.matcheS(regexField));
1)没有人(无论您是编译器还是您)都不了解从参数列表(- filename.matcheS(regexField)))中减去 bool(boolean) 值的含义。再想想你想做什么。

2)您要在参数列表的中间定义变量(final Filefinal String),您应该在此处使用表达式(就像已经定义的并且在其他地方设置了值或常量)。我敢打赌,您会混淆定义的方法调用(或者您只是忘了填写IDE自动生成的代码)。

关于java - 如果发现预期的EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36099217/

相关文章:

java - "Constructor cannot be applied to given types"错误

java - Android Studio上的错误(方法未从其父类(super class)重写方法)

java - 连接错误 : "org.jsoup.UnsupportedMimeTypeException: Unhandled content type"

php - AWS S3 : Image resize using lambda in laravel 5. 3

c++ - Lambda 和映射,通过引用传递参数 - 编译错误

lambda - Kotlin Any 和 lambda

android - Windows 10在我的应用程序上创建了问题

C++ 错误 C2059

java - 如何显示表的列名

java - 字符串中单词的出现次数(字数统计)