Mam dwie klasy w Javie: Test oraz TestAdd. Przy próbie wykonania programu, jeśli metoda Scanner wczytuje liczby, to program się wywala. Przy Strinach nic się nie dzieje. Podobnie, jak ustawię dane "na sztywno". Wówczas ze stringami nie ma problemu.
klasa Test:
public class Test {
private String imie = "Gucio";
public void setImie(String imie) {
this.imie = imie;
}
public String getImie() {
return imie;
}
public static void main(String[] args) {
//obiekt z danymi na sztywno
Test object1 = new Test();
System.out.println(object1.getImie());
//obiekt z danymi do wprowadzenia
TestAdd object2 = new TestAdd();
System.out.println("Imie: ");
object2.inputImie();
System.out.println("Wiek: ");
object2.inputWiek();
System.out.println(object2.getImie() + " " +object2.getWiek());
}
}
Klasa TestAdd:
import java.util.Scanner;
public class TestAdd extends Test{
private String imie;
public void setImie(String imie) {
this.imie = imie;
}
public String getImie() {
return imie;
}
public String inputImie() {
try(Scanner inImie = new Scanner(System.in)){
imie = inImie.nextLine();
}
return imie;
}
//wiek
private int wiek;
public int inputWiek() {
try(Scanner inWiek = new Scanner(System.in)){
wiek = inWiek.nextInt();
}
return wiek;
}
public void setWiek(int wiek) {
this.wiek = wiek;
}
public int getWiek() {
return wiek;
}
}
Błędy, które wyrzuca:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at TestAdd.inputWiek(TestAdd.java:29)
at Test.main(Test.java:24)