2010-02-20 5 views

Antwort

23

Das würde korrekte Syntax

return new String[]{ ans1, ans2 }; 

Auch sein, obwohl Sie zwei String s erstellt haben (ans1 und ans2) können Sie die String Array nicht erstellt haben (oder String[]) Sie zurück versuchen. Die Syntax oben gezeigt ist eine Abkürzung für den etwas ausführlichen noch äquivalenten Code:

String[] arr = new String[2]; 
arr[0] = ans1; 
arr[1] = ans2; 
return arr; 

wo wir ein Länge 2 String-Array erstellen, weisen den ersten Wert zu ans1 und den zweiten auf ans2 und dann das Array zurück.

+0

Warum ist es so? Ive alderly eine Zeichenfolge erstellt .. Wenn ich eine neue Zeichenfolge wie ans1 = new String [] erstellen, wird es dann funktionieren? – higherDefender

+0

@ D.J. denn obwohl Sie String-Objekte erstellt haben, haben Sie noch kein String-Array erstellt (siehe meine bearbeitete Antwort für weitere Details) –

9
return new String[] { ans1, ans2 }; 

Der Grund, warum Sie dies tun, tun müssen, ist nur zu sagen {ANS1, ans2} schafft nicht tatsächlich das Objekt, das Sie zurückkehren versuchen zu. Es fügt lediglich zwei Elemente zu einem Array hinzu, aber ohne "new String []" haben Sie kein Array erstellt, zu dem die Elemente hinzugefügt werden sollen.

+0

Warum ist es so? Ive alderly eine Zeichenfolge erstellt .. Wenn ich eine neue Zeichenfolge wie ans1 = new String [] erstellen, wird es dann funktionieren? – higherDefender

+0

@ D.J Meine Antwort mit weiterer Erklärung aktualisiert. –

4
return new String[] {ans1 , ans2}; 
+0

Warum ist es so? Ive alderly eine Zeichenfolge erstellt .. Wenn ich eine neue Zeichenfolge wie ans1 = new String [] erstellen, wird es dann funktionieren? – higherDefender

2
return new String[]{ans1,ans2}; 

sollte diese Arbeit. Zu deiner anderen Frage in den Kommentaren. Da Java eine stark typisierte Sprache ist, sollten alle Variablen/Ergebnisse instanziiert werden. Da Sie das Ergebnis, das Sie zurückgeben möchten, nicht instanziieren, führen wir die Instanziierung in der return-Anweisung selbst durch.

-1

Ich bin im Moment nur ein Gymnasiast, aber eine einfache Lösung, die ich von einem Freund von mir bekommen habe, sollte funktionieren. Es geht so (das ist Teil eines Projekts in meiner AP-Klasse):

public String firstMiddleLast() 
{ 
    //returns first, middle, and last names 
    return (first + " " + middle + " " + last); 
} 
+1

Und dann? Der Anrufer muss sie wieder sabotieren ...? – alexander

Verwandte Themen