所以我经过很长一段时间没有使用它回到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(因为我必须)
有人可以对此有所了解吗?
答案 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()。