2

我正在尝试创建一个 fileReader 方法,但每次我去编译时,我都会收到错误消息:

错误:找不到符号

--> fileReader list = new fileReader();

我已经检查了多个站点上的大量帖子,但我无法弄清楚这一点。

public ArrayList<String> fileReader()
{
  ArrayList<String> list = new ArrayList<String>();
  try(Scanner s = new Scanner(new File("test.txt"));)
    {
        while (s.hasNext())
            list.add(s.next());
        s.close();
    }catch(FileNotFoundException e)
    {
        System.out.println("File Not Found.");
    }
  return(list);
}


public static void main(String[] args)
{
Scanner user = new Scanner(System.in);
System.out.print("Enter a key: ");
int key = user.nextInt();
fileReader list = new fileReader();
4

4 回答 4

1

尝试

List<String> list = fileReader();
于 2013-09-22T06:55:10.780 回答
0

您不能实例化方法。fileReader是一个方法而不是一个类,因此这个语句是无效的:

fileReader 这里有多个问题:

  1. fileReader是一种方法,因此无法使用new. 删除新关键字。
  2. fileReader不是静态方法,因此您不能直接在 main 方法中调用它。要解决此问题,要么将fileReader方法标记为静态,要么创建类的实例,然后调用fileReader该实例。
  3. 最后,您需要创建一个 List 实例以使用从 fileReader 方法返回的列表。因此,将其更改为:

    列表列表 = fileReader(); // 如果 fileReader 被标记为静态

    List list = new yourClass().fileReader(); // 如果 fileReader 是一个非静态方法

于 2013-09-22T06:55:33.517 回答
0

您不能实例化方法。fileReader 是一个方法而不是一个类,因此这个语句是无效的:

1、如果要调用main方法fileReader方法,可以给fileReader加上static关键字

 //add static
public static ArrayList<String> fileReader() {
    ArrayList<String> list = new ArrayList<String>();
    try {
        //removed brackets 
        Scanner s = new Scanner(new File("test.txt"));
        while (s.hasNext())
            list.add(s.next());
        s.close();
    } catch (FileNotFoundException e) {
        System.out.println("File Not Found.");
    }
    return (list);
}
于 2013-09-22T07:11:49.090 回答
0

new keyword is used to create instances of classes not for calling methods.
fileReader() is a method not a class,So it either using instance of your class or make it static and call it directly.
I changed fileReader() to static method like this

public static ArrayList<String> fileReader()
{
  ArrayList<String> list = new ArrayList<String>();
  try(Scanner s = new Scanner(new File("test.txt"));)
    {
        while (s.hasNext())
            list.add(s.next());
        s.close();
    }catch(FileNotFoundException e)
    {
        System.out.println("File Not Found.");
    }
  return(list);
}

public static void main(String[] args)
{
   Scanner user = new Scanner(System.in);
   System.out.print("Enter a key: ");
   int key = user.nextInt();
   fileReader list = fileReader();
}
于 2013-09-22T07:03:46.267 回答