gibt zwei Variablen aus einer Methode zurück

9

Wie schreibe ich den folgenden Code richtig?

%Vor%

Es ist ein Fehler aufgetreten

%Vor%     
Lbert Hartanto 27.10.2014, 10:40
quelle

6 Antworten

21

Wenn Sie Java 8 verwenden, können Sie das verwenden Pair Klasse.

%Vor%

Andernfalls geben Sie einfach ein Array zurück.

    
ifloop 27.10.2014 10:43
quelle
4

Sie können nicht zwei verschiedene Werte in Methoden in Java zurückgeben.

Wenn dies erforderlich ist, haben Sie normalerweise zwei Optionen:

  1. Erstellen Sie eine Klasse mit den Typen, die Sie zurückgeben möchten, und geben Sie dann eine Instanz dieser Klasse zurück. Normalerweise sind diese Klassen sehr einfach, enthalten öffentliche Member und optional einen Konstruktor, um eine Instanz mit allen erforderlichen Werten zu initiieren.
  2. Fügen Sie der Methode, die von der Methode mit den Werten, die Sie zurückgeben möchten, ein Objekt mit dem Referenztyp als Parameter hinzufügen, ein Objekt hinzu. In Ihrem Beispiel verwenden Sie Strings, und deshalb wird dies nicht funktionieren, da in Java Strings unveränderlich sind.

Eine andere Option wäre die Verwendung eines Arrays von Strings, da beide Rückgabetypen Strings sind. Sie können diese Option als Rückgabewert oder als Parameter verwenden, der von der Methode geändert wird.

Bearbeiten: In der Regel geben "toString" -Methoden nur eine Zeichenfolge zurück. Vielleicht sollten Sie in Betracht ziehen, beide Zeichenfolgen mit einem Trennzeichen in einer Zeichenfolge zu verketten. Beispiel:

%Vor%     
Gil Moshayof 27.10.2014 10:45
quelle
2
  

Wenn in Java eine Funktion mehrere Werte zurückgeben soll, müssen Sie

verwenden      
  • Betten Sie diese Werte in ein Objekt ein, das Sie zurückgeben
  •   
  • oder ändern Sie ein Objekt, das an Ihre Funktion übergeben wird   ~ dystroy
  •   

Sie haben hier zwei Möglichkeiten (die ich kenne):

Option 1: Rückgabe als neues Array:

%Vor%

Option 2: Als solche zurückgeben

Bearbeitet, um anzuzeigen, dass Sie festgelegt wurden

%Vor%

mit Ihrer Methode:

%Vor%     
user3913686 27.10.2014 10:48
quelle
2

Es gibt vier Methoden, die ich mir vorstellen kann, um dieses Szenario zu implementieren:

1. Verwenden einer Klasse

Erstellen Sie eine Klasse mit allen Attributen, die Sie zurückgeben möchten, in Ihrem Fall kann es

sein %Vor%

und ändern Sie Ihre Methode, um das Objekt dieser Klasse einzuschließen, und legen Sie die Werte in diesen Attributen fest. Ändern Sie den Rückgabetyp der Methode in den Klassennamen, z. Beispiel

%Vor%

2. Verwenden eines Arrays

Ändern Sie die Methode, um das String-Array zurückzugeben und die Werte in diesem Array zu speichern:

%Vor%

3. Verwenden von Javatuples

Sie können Details unter dem Link Ссылка

lesen

4. Durch Abgrenzung von Daten

Sie können ein Trennzeichen verwenden, wenn Sie sich über die Daten in den Variablen sicher sind. Dies erfordert jedoch ein Ausschneiden mit dem Begrenzer, wenn Sie diese Werte verwenden möchten.

%Vor%     
Ashu 13.01.2017 07:50
quelle
1

Sie können entweder einen Wrappertyp erstellen, ihn instanziieren und zurückgeben oder eine Map oder eine Liste / ein Array zurückgeben.

    
Kent 27.10.2014 10:43
quelle
0

Sie könnten globale Variablen verwenden und die Werte von der Funktion aktualisieren lassen.

Außerhalb der Funktion deklarieren:

%Vor%     
jepaljey 27.10.2017 12:15
quelle