Поэтому я возвращаюсь на Java после долгого времени не работая с ним. Первый метод моего первого класса, и я вижу ошибку, которую я никогда раньше не видел.
Для каждого оператора System.out.println() у меня есть.out. part выбрасывает эту ошибку: не может найти символ символа: переменная 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. в этом блоке кода выбрасывается эта ошибка: не удается найти символ символа: переменная out location: class System
Я использую Netbeans8.0.2 и java 1.7.0_76 (потому что мне нужно)
Может кто-то пролить свет на это?
Это проблема:
public class System
Вы создаете свой собственный класс под названием " System
, поэтому, когда вы позже используете:
System.out.println
которые выглядят в вашем System
классе, а не в java.lang.System
.
Опции:
java.lang
, именно по этой причинеПолностью квалифицируйте вызов:
java.lang.System.out.println(...);
Я бы выбрал прежний вариант, лично.
Замените всю System.<something>
с помощью java.lang.System.<something>
.
В текущем состоянии ваш код ссылается на ваш собственный класс System
. Поскольку имя одно и то же, и ваш имеет более высокий приоритет в области, вы получаете эту ошибку.
Вероятно, это лучшая идея изменить название вашего класса. Обычно вы не хотите противоречить внутренним именам.
Когда вы используете System.out.println() в том же имени класса System. Поэтому во время вызова метода println() ваша программа ищет метод в том же классе, а не проверяет его в java.lang. пакет.
Что касается решения проблемы, вы можете изменить имя класса на нечто другое, а не на System, или вы можете изменить System.out.println() с помощью java.lang.System.out.println().