gleicher wert eines scanners in anderer methode?

...komplette Frage anzeigen

3 Antworten

Die Variable existiert nur innerhalb der Methode, solange diese ausgeführt wird.  

Daraus folgt, dass die Variable global sein muss. Ob statisch oder nicht kommt auf den Kontext an.  

Alternativ, sofern der Rückgabedatentyp der Methode der entsprechende String ist, kann man der zu verwendenden Variable einfach diesen zuweisen. Bezeichnen wir die Methode als String read() -> String eingabe = read();

Dann übergib eingabe halt als Parameter >_>

Die andere Möglichkeit wäre halt eingabe zu einem Attribut zu machen.

Oder du musst es halt zurückgeben und dann doch wieder an die Methode übergeben.

Entweder du verwendest eine Instanz-Variable:

class Test {

String s;

 void test() {
    s = new Scanner(System.in).nextLine();
 }

 void test2() {
     System.out.println(s);
 }

 public static void main(String[] args) {
    Test test = new Test();
    test.test();
    test.test2();
 }

}

Oder du gibst den eingelesenen Wert über die Methode zurück:

class Test {

String test() {
return new Scanner(System.in).nextLine();
}

void test2(String value) {
System.out.println(value);
}

public static void main(String[] args) {
Test test = new Test();
test.test2(test.test());
}

}

Was möchtest Du wissen?