Java несколько сканеров
У меня есть класс, который создает несколькоInteger
объекты и помещает их вLinkedList
как показано ниже:
public class Shares implements Queue {
protected LinkedList L;
public Shares() {
L = new LinkedList();
}
public boolean add(E price) {
System.out.println("How many of these shares would you like?");
Scanner scanInt;
scanInt = new Scanner(System.in);
Integer noShares = scanInt.nextInt();
for (int i = 0; i < noShares; i++) {
L.addLast(price);
}
scanInt.close();
return true;
}
}
У меня есть приложение, которое сканирует на вход "добавлять" из консоли и, если найден, вызывает методadd
как показано ниже:
public class Application {
private static Scanner scan;
public static void main(String[] args) {
Queue S = new Shares();
scan = new Scanner(System.in);
System.out.println("Please type add");
String sentence = scan.nextLine();
while (sentence.equals("quit") == false) {
if (sentence.equals("add")) {
System.out
.println("What price would you like to buy your shares at?");
S.add((Integer) scan.nextInt());
} else
System.exit(0);
sentence = scan.nextLine();
}
}
}
Приложение должно позволять пользователю войти "добавлять" столько раз, сколько они хотят, но ошибкалиния не найдена появляется послеadd
метод был вызван.
Я предполагаю, что это потому, чтоScanner
в методе, не был закрыт, а затем вновь открыт при необходимости. Это то, что не так с программой, и если да, то как мне исправить ее?
Обратите внимание, что эта программа не завершена, так как я добавлю метод продажи, который продает эти акции. Вот почему я использую цикл while.