Obwohl ich C, C++ und C# seit vielen Jahren programmiert habe, bin ich nur oberflächlich mit Java vertraut. Er half meinem Comp Sci-Sohn mit einem Java-College-Projekt, Referenzen zu zwei Objekten von einer Methode in Java zurückzugeben. Ich schlug vor, einen als Funktionswert und den zweiten als Referenz zurückzugeben. Er war nicht sicher, wie er das machen sollte. Ich recherchierte ein wenig und erkannte, dass es vielleicht nicht möglich ist. Meine Frage ist in Java, was die übliche Methode ist, wenn eine Methode mehr als einen Verweis auf ein Objekt zurückgeben muss. Hier ist das spezifische Beispiel in meinem Sohn Fall.Wie man einen Verweis auf ein Objekt als Parameter in Java zurückgibt
// This method returns references to the head and tail objects from the passed in
// linked list. The head object is returned as the function value and the tail is
// returned as a parameter.
public Static Node GetHeadTail(List list, Node tail)
Ich weiß, die oben nicht in Java funktionieren, da der Schwanz ein Verweis auf Knoten und in Java die Referenz selbst von Wert übergeben wird. Was ist der gebräuchlichste Umgang mit Java? Die Lösung meines Sohnes bestand darin, ein Array von 2 Node-Objekten für den Funktionswert zurückzugeben. Ich sagte, das sei eine schlechte Lösung, weil es nicht die Bedeutung jedes Elements des Arrays dokumentiert. Eine andere Lösung wäre, ein Objekt zu erstellen, das die Kopf- und Endreferenzen enthält. In dem bestimmten Beispiel war es jedoch der Kopfzeiger, der am interessantesten war, und wenn ein Objekt zurückgegeben wurde, würde dies einen unerwünschten Codierungsaufwand für den Aufrufer der Methode erzeugen, wenn alles, was sie wollten, der Kopf war.
Die gebräuchlichen Lösungen sind in der Tat, was Sie bereits wissen: a) Verkapseln Sie die Objekte, die in einem Objekt zurückgegeben werden, oder b) Geben Sie ein Array zurück. – shasan
Müssen Sie wirklich die beiden in einem einzigen Anruf erhalten? Ich würde in den meisten Fällen nur zwei Methoden verwenden: 'getHead' und' getTail'. –
Es gibt keine einfache Möglichkeit, eine Funktion zwei Objekte in Java zurückzugeben. Ich denke, die Lösung Ihres Sohnes ist in Ordnung, aber die Schaffung eines Objekts für sie kann in Abhängigkeit von der Situation in Ordnung sein. – wvdz