2

fileReader メソッドを作成しようとしていますが、コンパイルするたびにエラーが発生します。

エラー: シンボルが見つかりません

--> fileReader リスト = 新しい 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は静的メソッドではないため、メイン メソッドで直接呼び出すことはできません。この問題を解決するfileReaderには、メソッドを静的としてマークするか、クラスのインスタンスを作成してからそのインスタンスを呼び出しfileReaderます。
  3. 最後に、fileReader メソッドから返されたリストを使用するために List のインスタンスを作成する必要があります。したがって、次のように変更します。

    リスト リスト = fileReader(); // fileReader が静的としてマークされている場合

    リスト list = new yourClass().fileReader(); // fileReader が非静的メソッドの場合

于 2013-09-22T06:55:33.517 に答える
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 に答える