Java System.out.println()抛出错误

时间:2015-04-08 12:15:04

标签: java netbeans

所以我经过很长一段时间没有使用它回到Java。我的第一堂课的第一种方法,我看到了以前从未见过的错误。

对于我拥有的每个System.out.println()语句,.out。部分抛出此错误: 找不到标志   符号:变量输出   location:class System

我的课程未完成,但看起来像这样

import java.io.*;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class System{
//Variables
char map[];
/*
Functions
FILE INPUT 
*/
public static void ReadFile(){
    FileInputStream fstream;
    try{
        fstream = new FileInputStream("C:\\Users\\James\\Documents\\NetBeansProjects\\Assignment1\\src\\testfiles");
        BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

        String strLine;

        System.out.println("Your Input File");
        System.out.println("****************");

        //Read File Line By Line
        while ((strLine = br.readLine()) != null)   
        {
            // Print the content on the console
            System.out.println(strLine);
            inputArray.add(strLine);
        }

        System.out.println("****************");
        //Close the input stream
        br.close();
        System.out.println();
    } 
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
  }
}

每一个.out。在此代码块中抛出此错误:找不到符号   符号:变量输出   location:class System

我正在使用Netbeans8.0.2和java 1.7.0_76(因为我必须)

有人可以对此有所了解吗?

3 个答案:

答案 0 :(得分:11)

这是问题所在:

public class System

您正在创建名为System自己的类,以便以后使用:

System.out.println

正在查看您的 System课程,而不是java.lang.System

选项:

  • 更改班级名称。在java.lang中创建与类同名的类通常是一个坏主意,正是因为这个原因
  • 完全符合要求:

    java.lang.System.out.println(...);
    

我个人选择以前的选择。

答案 1 :(得分:5)

将所有System.<something>替换为java.lang.System.<something>

在当前状态下,您的代码引用了您自己的System类。由于名称相同,并且您的名称在范围内具有更高的优先级,因此最终会出现此错误。

改变班级名称可能是个更好的主意。您通常不想与内部名称发生冲突。

答案 2 :(得分:1)

在同一类名系统中使用System.out.println()时。所以在调用方法 println()时,你的程序在同一个类中搜索方法,而不是在java.lang中检查相同的方法。封装

至于问题的解决方案,您可以将类的名称更改为其他内容而不是 System ,或者您可以使用java.lang.System更改System.out.println() .out.println()。