2015-04-08 2 views
1

Так что я возвращаюсь на Java после долгого времени не работая с ним. Первый метод моего первого класса, и я вижу ошибку, которую я никогда раньше не видел.Ошибка Java System.out.println() throw

Для каждого оператора System.out.println() у меня есть .out. часть выдает эту ошибку: не может найти символ символа: переменную из местоположения: Класс 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. в этом блоке коды выдает эту ошибку: не удается найти символ символ: переменный из местоположения: Класс System

Я использую Netbeans8.0.2 и Java 1.7.0_76 (потому что я должен)

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

+8

Почему вы называете свой класс «Система»; то удивляться, что ваш класс System не имеет члена? – GhostCat

ответ

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() в том же названии класса Система. Поэтому во время вызова метода println() ваша программа ищет метод в том же классе, а не проверяет его в java.lang. пакет.

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