错误:找不到符号方法

时间:2013-09-22 06:51:04

标签: java

我正在尝试创建一个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 个答案:

答案 0 :(得分:1)

尝试

List<String> list = fileReader();

答案 1 :(得分:0)

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

的FileReader 这里有多个问题:

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

    List list = fileReader(); //如果fileReader被标记为静态

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

答案 2 :(得分:0)

new关键字用于创建不用于调用方法的类实例 fileReader()是一种方法,而不是一个类,所以它使用您班级的instancemake it static并直接调用它。
我将fileReader()更改为静态方法,如此

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();
}

答案 3 :(得分:0)

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

1,如果要调用main方法fileReader方法,可以将static关键字添加到fileReader

 //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);
}