Java System.out.println () сгенерировал ошибку

1

Поэтому я возвращаюсь на 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 (потому что мне нужно)

Может кто-то пролить свет на это?

  • 8
    С какой стати вы называете свой класс "Система"; тогда удивляться тому, что у вашего класса System нет члена out?
Теги:
netbeans

3 ответа

11

Это проблема:

public class System

Вы создаете свой собственный класс под названием " System, поэтому, когда вы позже используете:

System.out.println

которые выглядят в вашем System классе, а не в java.lang.System.

Опции:

  • Измените имя своего класса. Как правило, плохая идея создавать классы с тем же именем, что и классы в java.lang, именно по этой причине
  • Полностью квалифицируйте вызов:

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

Я бы выбрал прежний вариант, лично.

5

Замените всю System.<something> с помощью java.lang.System.<something>.

В текущем состоянии ваш код ссылается на ваш собственный класс System. Поскольку имя одно и то же, и ваш имеет более высокий приоритет в области, вы получаете эту ошибку.

Вероятно, это лучшая идея изменить название вашего класса. Обычно вы не хотите противоречить внутренним именам.

1

Когда вы используете System.out.println() в том же имени класса System. Поэтому во время вызова метода println() ваша программа ищет метод в том же классе, а не проверяет его в java.lang. пакет.

Что касается решения проблемы, вы можете изменить имя класса на нечто другое, а не на System, или вы можете изменить System.out.println() с помощью java.lang.System.out.println().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню