Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe zwei Methoden geschrieben, welches den Benutzernamen und danach das Geschlecht der jeweiligen Person abfragen soll. Ich bekomme die Fehlermeldung java.lang.NullPointerException, sobald ich da Programm ausführe. Ich vermute, dass die Methode benutzerName() das Problem verursacht, weil die return Anweisung einen Wert und keinen String zurückgibt.
Gibt es daher eine Möglichkeit, wie man Strings zurückgeben kann?
Vielen Dank im Voraus!
Sinus
Java:
class PersonenDaten {
String c_name;
int c_geschlecht;
PersonenDaten() {
c_name ="";
c_geschlecht = 3;
} // constructor
String benutzerName() {
System.out.println("Benutzername: ");
return System.console().readLine(); // <<===== hier soll der Benutzername zurückgegeben werden
}
int benutzerGeschlecht() {
System.out.println("Bitte wählen \n");
System.out.println("1\t- Männlich");
System.out.println("2\t- Weiblich");
System.out.println("3\t- keine Angabe");
return Integer.parseInt(System.console().readLine()); //read String and convert to Int
}
}
public class Eingabemenü {
public static void main(String[] args) {
PersonenDaten test = new PersonenDaten();
String name;
int wahl;
name = test.benutzerName();
wahl = test.benutzerGeschlecht();
switch (wahl) {
case 1:
System.out.println("Hallo Herr:" +name+ "!");
case 2:
System.out.println("Hallo Frau:" +name+ "!");
case 3:
System.out.println("Hallo" +name+ "!");
default:
System.out.println("ungültige Eingabe!");
}
}
}
Erstelle dir ein Scannerobjekt, das die Eingaben liest und weitergibt:
Java:
public class Test
{
// Scanner
private Scanner scanner;
public Test()
{
scanner = new Scanner( System.in );
}
public static void main( String[] args )
{
new Test().init();
}
private void init()
{
System.out.print( "Geben Sie etwas ein >> " );
String eingabe = scanner.nextLine();
}
(...)
}
funzt irgendie immernoch nicht. Kannst du nochmal drüberschauen? Und zwar bei benutzername()
bekomme ich die Fehlermeldung The value of the local variable eingabe is not used
Vielen Dank!
SinuS
Java:
import java.util.Scanner;
class PersonenDaten {
Scanner scanner;
String c_name;
int c_geschlecht;
PersonenDaten() {
c_name ="";
c_geschlecht = 3;
} // constructor
void benutzerName() {
System.out.println("Benutzername: ");
String eingabe = scanner.nextLine(); // <<==== The value of the local variable eingabe is not used
}
}
public class Eingabemenü {
public static void main(String[] args) {
PersonenDaten test = new PersonenDaten();
test.benutzerName();
}
}