2013-09-22 152 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); 
}