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

use*_*386 1 java netbeans

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

对于我拥有的每个System.out.println()语句,.out.部分抛出此错误:找不到符号符号:变量输出位置:类系统

我的班级未完成,但看起来像这样

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();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

每一个.out.在这段代码中抛出此错误:找不到符号符号:变量输出位置:类System

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

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

Jon*_*eet 11

这就是问题:

public class System
Run Code Online (Sandbox Code Playgroud)

你正在创建自己的System,所以当你以后使用时:

System.out.println
Run Code Online (Sandbox Code Playgroud)

那是在你的 System班级而不是java.lang.System.

选项:

  • 更改班级的名称.java.lang正是出于这个原因,创建与类内部具有相同名称的类通常是一个坏主意
  • 完全符合要求:

    java.lang.System.out.println(...);
    
    Run Code Online (Sandbox Code Playgroud)

我个人会选择前一个选项.


Rag*_*ood 5

更换所有的System.<something>java.lang.System.<something>.

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

更改班级名称可能是个更好的主意.您通常不希望与内部名称冲突.