You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将字符串存入ArrayList并写入文件时出现cannot find symbol错误求助

问题原因与解决方案

错误根源

  • 你的类名**Arrays**和Java标准库中的java.util.Arrays类完全重名,编译器会优先把Arrays.asList()中的Arrays识别为你自定义的Arrays类,而这个类里并没有asList静态方法,因此抛出cannot find symbol错误。
  • 同时你未导入java.util.Arrays类,就算类名不冲突,直接调用Arrays.asList()也会触发同样的错误。

修正方案

有两种可行的解决办法:

方法一:修改自定义类名

将你的类名改为非Arrays的名称(比如ArrayFileWriter),同时导入java.util.Arrays类:

import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays; // 新增导入语句

public class ArrayFileWriter{ // 修改类名
    public static void main(String[] args)throws IOException
    {
        File f = new File("C:\\Users\\Administrator\\Documents\\java code\\Arrays.txt");
        FileWriter fw = new FileWriter(f,true);
        PrintWriter pw = new PrintWriter(fw);

        ArrayList<String> header = new ArrayList<>(Arrays.asList("NAME","REGNUM","ACADEMICYEAR","PROGRAMME","COURSECODE","ASS1","ASS2","ASS3","TEST1","AGGREGATEDMARK","COURSEWORK","GRADE","RESULT"));

        pw.print(header);
        pw.close();
    }
}

方法二:使用全限定类名调用

如果不想修改类名,直接用java.util.Arrays的全限定名调用asList方法即可,无需额外导入:

import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.ArrayList;

public class Arrays{
    public static void main(String[] args)throws IOException
    {
        File f = new File("C:\\Users\\Administrator\\Documents\\java code\\Arrays.txt");
        FileWriter fw = new FileWriter(f,true);
        PrintWriter pw = new PrintWriter(fw);

        // 使用全限定类名指定调用标准库的Arrays类
        ArrayList<String> header = new ArrayList<>(java.util.Arrays.asList("NAME","REGNUM","ACADEMICYEAR","PROGRAMME","COURSECODE","ASS1","ASS2","ASS3","TEST1","AGGREGATEDMARK","COURSEWORK","GRADE","RESULT"));

        pw.print(header);
        pw.close();
    }
}

额外提示

  • 直接调用pw.print(header)会输出ArrayList的默认toString格式(带方括号和逗号),如果需要更友好的输出格式(比如每个元素换行或无括号的逗号分隔),可以遍历列表逐个写入:
for(String item : header) {
    pw.print(item + ", "); // 每个元素后加逗号分隔
    // 或者用pw.println(item); 让每个元素单独占一行
}

内容的提问来源于stack exchange,提问作者Lee Tubz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:15:40