2013-09-22 137 views
2

我试图创建的FileReader方法,但我每次去编译的时候,我得到的错误:错误:无法找到符号方法

错误:无法找到符号

- >的FileReader列表= 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(); 
+0

使用'FileReader'而不是'fileReader'。 – user2339071

+0

fileReader()是方法还是构造函数?看起来这是一种方法,你应该删除“新”关键字。 – Teddy

+0

这是一种方法,你是正确的,并修复它 – user2803648

回答

0

无法实例的方法。 fileReader是一种方法,而不是一类,因此这种说法是不正确的:

的FileReader这里 多个问题:

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

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

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

+0

我现在明白了,自从我完成Java之后已经有一段时间了,但我记得之前有过这个问题,当然我忘记了解决方案 – user2803648

1

尝试

List<String> list = fileReader(); 
+0

这正是我需要的。非常感谢你 – user2803648

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

无法实例的方法。的FileReader是一种方法,而不是一类,因此这种说法是不正确的:

1,如果你想调用的主要方法的FileReader方法,可以将静态关键字添加到的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); 
}