Anche se ho programmato C, C++ e C# per molti anni, sono solo superficialmente familiare con Java. Aiutando il mio figlio Comp Sci con un progetto di un college Java, aveva bisogno di restituire riferimenti a due oggetti da un metodo in Java. Ho suggerito di restituirne uno come valore della funzione e il 2 come riferimento. Non era sicuro di come farlo. Ho fatto una piccola ricerca e ho capito che potrebbe non essere possibile. La mia domanda è in Java qual è il metodo comune utilizzato quando un metodo deve restituire più di un riferimento a un oggetto. Ecco l'esempio specifico nel caso dei miei figli.Come restituire il riferimento all'oggetto come parametro in Java
// 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)
io realizzare la sopra non funziona in Java poiché la coda è un riferimento al nodo in Java riferimento stesso viene passato per valore. Qual è il modo più comune di trattare questo in Java? La soluzione di mio figlio era di restituire un array di 2 oggetti Node per il valore della funzione. Ho detto che era una soluzione scadente perché non documenta il significato di ogni elemento dell'array. Un'altra soluzione sarebbe quella di creare un oggetto che contenesse i riferimenti di testa e coda. Tuttavia, nell'esempio in particolare, era il puntatore principale che era di maggiore interesse e se veniva restituito un oggetto, creava un codice di overhead indesiderato per il chiamante del metodo se tutto quello che desideravano era la testa.
Le soluzioni comuni sono in effetti ciò che già sapete: a) Incapsulare gli oggetti da restituire in un oggetto o b) Restituire un array. – shasan
Hai davvero bisogno di ottenere i due in una singola chiamata? Vorrei solo usare due metodi qui nella maggior parte dei casi: 'getHead' e' getTail'. –
Non c'è un modo semplice per avere una funzione restituire due oggetti in Java. Penso che la soluzione di tuo figlio stia bene, ma creare un oggetto può andar bene, a seconda della situazione. – wvdz