[Useful Info] Java Basics - java.util.Scanner: Typical Incorrect Usage

Колеги, и двата дни по време на Java изпитите масово отваряте по няколко Scaner-а върху един и същ входен поток (System.in). Това по някаква случайност в Eclipse работи, но по концепция е грешно! Не го правете. Това е грешно! Ето примерен код, който не трябва да пишете:

int firstInt = readInt();
String secondLine = readLine();
System.out.println(firstInt);
System.out.println(secondLine);
private static int readInt() {
  Scanner input = new Scanner(System.in);
  return input.nextInt();
}
private static String readLine() {
  Scanner input = new Scanner(System.in);
  return input.nextLine();
}

Как да избегнете този проблем? Ами подайте си отворения Scanner като параметър или го направете статично поле в класа.

Това дори по някаква случайност да работи локално в Eclipse, на Judge системата със сигурност гърми.