Как вернуть массив из метода - PullRequest
5 голосов
/ 20 сентября 2010

Мне нужна помощь. Для этого конкретного метода. Я пытаюсь заставить его вернуть массив, который я токенизировал.

public ArrayList read (){

  BufferedReader inputStream = null;
  try {
    inputStream = new BufferedReader(new FileReader("processes1.txt"));
    String l;
    while ((l = inputStream.readLine()) != null) {

      ArrayList<String> tokens = new ArrayList<String>();

      Scanner tokenize = new Scanner(l);
      while (tokenize.hasNext()) {
        tokens.add(tokenize.next());
      }
      return tokens;
    }
  } catch(IOException ioe){
    ArrayList<String> nothing = new ArrayList<String>();
    nothing.add("error1");
    System.out.println("error");
    //return nothing;
  }
  return tokens;
}

Что я делаю не так?!

Ответы [ 4 ]

10 голосов
/ 20 сентября 2010

В самом конце вы делаете return tokens, но эта переменная была определена ВНУТРИ блока try, поэтому она недоступна вне его Вы должны добавить:

ArrayList<String> tokens = new ArrayList<String>();

к началу вашего метода, прямо под BufferedReader.

0 голосов
/ 05 апреля 2017

Попробуйте это:

public ArrayList read (){

          File text = new File("processes1.txt");

              ArrayList<String> tokens = new ArrayList<String>();

              Scanner tokenize;
            try {
                tokenize = new Scanner(text);
                while (tokenize.hasNext()) {

                      tokens.add(tokenize.next());
                  }

                }

            catch(IOException ioe){
                ArrayList<String> nothing = new ArrayList<String>();
                nothing.add("error1");
                System.out.println("error");
                //return nothing;
              }
             return tokens;

    }}
0 голосов
/ 20 сентября 2010

Возможно, это где-то ошибка в вашем основном методе.Вы создаете экземпляр класса и вызываете для него метод read ()?

0 голосов
/ 20 сентября 2010

Попробуйте вернуть ArrayList, который является более подходящим типом возврата в этом случае.Универсальные типы не связаны друг с другом так, как их использует ваш пример.

...