Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:找不到符号方法_Java - Fatal编程技术网

Java 错误:找不到符号方法

Java 错误:找不到符号方法,java,Java,我试图创建一个fileReader方法,但每次我去编译时,都会出现以下错误: 错误:找不到符号 -->fileReader列表=新建fileReader() 我在多个网站上浏览了很多帖子,但我想不出这一条 public ArrayList<String> fileReader() { ArrayList<String> list = new ArrayList<String>(); try(Scanner s = new Scanner(new Fil

我试图创建一个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();
public ArrayList fileReader()
{
ArrayList=新建ArrayList();
try(Scanner s=newscanner(新文件(“test.txt”);)
{
而(s.hasNext())
添加(s.next());
s、 close();
}catch(filenotfounde异常)
{
System.out.println(“未找到文件”);
}
返回(列表);
}
公共静态void main(字符串[]args)
{
扫描仪用户=新扫描仪(System.in);
System.out.print(“输入一个键:”);
int key=user.nextInt();
fileReader列表=新建fileReader();
试试看

List List=fileReader();

无法实例化方法。
文件读取器
是一个方法而不是类,因此此语句无效:

文件阅读器 这里有多个问题:

  • fileReader
    是一种方法,因此无法使用
    new
    对其进行实例化。 删除新关键字
  • fileReader
    不是静态方法,因此不能在主方法中直接调用它。 要解决此问题,请将
    fileReader
    方法标记为static,或者创建类的实例,然后对该实例调用
    fileReader
  • 最后,您需要创建一个List实例,以使用fileReader方法返回的List。因此,将其更改为:

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

    List List=newyourclass().fileReader();//如果fileReader是非静态方法


  • new
    关键字用于创建不用于调用方法的类的实例。
    fileReader()
    是一个方法而不是一个类,因此它要么使用类的
    实例
    ,要么
    将其设置为静态
    并直接调用它。
    我将
    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();
    }
    
    publicstaticarraylistfilereader()
    {
    ArrayList=新建ArrayList();
    try(Scanner s=newscanner(新文件(“test.txt”);)
    {
    而(s.hasNext())
    添加(s.next());
    s、 close();
    }catch(filenotfounde异常)
    {
    System.out.println(“未找到文件”);
    }
    返回(列表);
    }
    公共静态void main(字符串[]args)
    {
    扫描仪用户=新扫描仪(System.in);
    System.out.print(“输入一个键:”);
    int key=user.nextInt();
    fileReader list=fileReader();
    }
    
    无法实例化方法。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);
    }
    
    //添加静态
    公共静态ArrayList文件读取器(){
    ArrayList=新建ArrayList();
    试一试{
    //拆下的支架
    扫描器s=新扫描器(新文件(“test.txt”);
    而(s.hasNext())
    添加(s.next());
    s、 close();
    }catch(filenotfounde异常){
    System.out.println(“未找到文件”);
    }
    返回(列表);
    }
    
    使用
    FileReader
    而不是
    FileReader
    。FileReader()是一个方法还是一个构造函数?似乎它是一个方法,您应该删除“new”关键字。这是一个方法,你是正确的,并且修复了它。这正是我所需要的。非常感谢你,我现在就知道了,我已经有一段时间没有使用Java了,但是我记得以前遇到过这个问题,当然我忘了解决方法
     //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);
    }