2010-02-20 8 views

risposta

23

la sintassi corretta sarebbe

return new String[]{ ans1, ans2 }; 

Anche se hai creato due String s (ans1 e ans2) non si è creata la matrice String (o String[]) si sta cercando di tornare. La sintassi raffigurato è un'abbreviazione per il codice ancora equivalente leggermente più dettagliato:

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

dove si crea un array di stringhe di lunghezza 2, assegnare il primo valore di ans1 e la seconda per ans2 e poi tornare tale matrice.

+0

Perché è così? Ive alderly ha creato una stringa .. se creo una nuova stringa come ans1 = new String [] funzionerà? – higherDefender

+0

@ D.J. perché anche se hai creato oggetti String non hai ancora creato un array String (vedi la mia risposta modificata per maggiori dettagli) –

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

Il motivo che dovete fare fare questo è solo dicendo {ans1, ans2} in realtà non creare l'oggetto che si sta tentando di tornare. Tutto ciò che fa è aggiungere due elementi a una matrice, ma senza "nuova stringa []" non hai effettivamente creato una matrice per aggiungere gli elementi.

+0

Perché è così? Ive alderly ha creato una stringa .. se creo una nuova stringa come ans1 = new String [] funzionerà? – higherDefender

+0

@ D.J Aggiornato la mia risposta con ulteriori spiegazioni. –

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

Perché è così? Ive alderly ha creato una stringa .. se creo una nuova stringa come ans1 = new String [] funzionerà? – higherDefender

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

Questo dovrebbe funzionare. Alla tua altra domanda nei commenti. Poiché Java è un linguaggio fortemente tipizzato, tutte le variabili/i risultati dovrebbero essere istanziati. Dato che non stai istanziando il risultato che vuoi restituire da nessuna parte, stiamo facendo l'istanziazione nella dichiarazione di ritorno stessa.

-1

Al momento sono solo uno studente di scuola superiore, ma una soluzione facile che ho ricevuto da un mio amico dovrebbe funzionare. Funziona così (questo fa parte di un progetto nella mia classe AP):

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

E poi? Il chiamante deve saperle di nuovo ...? – alexander

Problemi correlati