Метод не использует параметр

Метод fillLists() не использует параметр Scanner sc, который также является параметром метода calc() внутри которого использую fillLists().

Если Scanner sc объявить и инициализировать внутри calc(), то fillLists() работает. Подскажите, пожалуйста, в чем дело. Метод check(), проверяющий строку в Scanner на требуемый паттерн, работает.

 void calc(Scanner sc) {
    //Scanner sc = new Scanner(str);
    if (check(sc) == true) {
        //String nn = "12 + 8";
        List<Integer> digits = new ArrayList<Integer>();
        List<Character> signs = new ArrayList<Character>();
        fillLists(sc, digits, signs);
        int result = 0;
            switch(signs.get(0)){
                case '+':
                    result = digits.get(0) + digits.get(1);
                    break;
                case '-':
                    result = digits.get(0) - digits.get(1);
                    break;
                case '*':
                    result = digits.get(0) * digits.get(1);
                    break;
                case '/':
                    result = digits.get(0) / digits.get(1);
                    break;
        }
        System.out.println("Result " + result);
    }
    else {
        System.out.println("Check failed. Throw exception");
    }
}

  void fillLists(Scanner sc, List digits, List signs) {
    int i = 0;
    while (sc.hasNext()) {
        if (i % 2 == 0)
            digits.add(sc.nextInt());
        else
            signs.add(sc.next().charAt(0));
        i++;
    }
}

    public static void main(String[] args) {
    // то, что передаю в сканер
    Calculate c = new Calculate();
    String nn = "12 + 8";
    Scanner sc = new Scanner(nn);
    c.calc(sc);
}

Ответы (1 шт):

Автор решения: John Enesan

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

→ Ссылка