Newb Вопрос: прохождение объектов в Java? - PullRequest
2 голосов
/ 17 июня 2010

Я новичок в Java.Я делаю следующее:

Чтение из файла, затем помещаем данные в переменную.

Я объявил checkToken и lineToken как открытые строки в классе.

    public static void readFile(String fromFile) throws IOException {
    BufferedReader reader = new BufferedReader(new FileReader(fromFile));
          String line = null;
          while ((line=reader.readLine()) != null )  {
          if (line.length() >= 2) { 
               StringTokenizer lineToken = new StringTokenizer (line);
               checkToken = lineToken.nextToken();
               processlinetoken()
               ......

Но вот где я сталкиваюсь с проблемой.

     public static void processlinetoken()
          checkToken=lineToken.nextToken();
     }

она выходит из строя.

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
 The method nextToken() is undefined for the type String

 at testread.getEngineLoad(testread.java:243)
 at testread.readFile(testread.java:149)
 at testread.main(testread.java:119)

так как мне заставить это работать?Кажется, передают переменную, но ничего после.работает.

Среда Eclipse не сильно помогает: "Связать все ссылки для локального переименования (не изменяет ссылки в других файлах)". Переименовать в файле - единственный вариант.Это ничего не делает.

Ответы [ 3 ]

2 голосов
/ 17 июня 2010

Просто кажется, что lineToken - это String вместо StringTokenizer.Возможно, вы объявили String lineToken атрибутом вашего класса и планировали использовать его в течение всего времени, но в методе readFile вы присваиваете lineToken a new StringTokenizer(), но ваше определение локально и скрывает то, что вы делаетеout.

Вы должны попытаться удалить StringTokenizer из

StringTokenizer lineToken = new StringTokenizer (line);

и просто сделать

lineToken = new StringTokenizer(line);
0 голосов
/ 17 июня 2010

Спасибо, Джек.

Я объявлял общедоступную статическую строку, а затем StringTokenizer в readFile (). Поэтому при вызове ProcessLineToken () он просматривал пустую переменную String, а не StringTokenizer, объявленный в readFile ().

Я неправильно понял использование StringTokenizer. Это тип, а не расширение.

0 голосов
/ 17 июня 2010

Вы пытаетесь вызвать nextToken() для строки в строке 243 testread.java. Если вы используете IDE, она должна показать вам проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...