对参数使用三点符号时不会出现编译错误

Don't get compilation error when using three dots notation for parameters

我想生成 CSV 文件。我有一个 generateCSV 方法,它将文件名作为参数和一堆条目

private static void generateCSV(String pFilename, String... pColumns) {

    try(FileWriter fileWriter = new FileWriter(pFilename,true)) {
        for(String column : pColumns) {
            fileWriter.append(column);
            fileWriter.append(";");
        }
        fileWriter.append("\n");
        fileWriter.flush();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
}

在没有条目的情况下使用 generateCSV("myfile.csv") 调用方法时,我没有收到任何编译错误。我认为这个表示法意味着从这个对象类型传递 1-N 个参数。没有?

只向此方法传递一个参数就可以了:pColumns 将是一个零长度数组。

如果你想要求至少传递一个列名,添加一个额外的参数:

private static void generateCSV(
    String pFilename, String firstColumn, String... otherColumns) {

然后你需要特别处理第一列:

    fileWriter.append(firstColumn);
    fileWriter.append(";");
    for(String column : otherColumns) {
        fileWriter.append(column);
        fileWriter.append(";");
    }

这比将它们视为单个数组稍微不方便;但您只需要权衡这一点与至少拥有一列的编译时强制实施的好处。