PDA

Visualizza la versione completa : [java] toString


perzem
09-01-2005, 19:57
con questi metodi possibile costruire un metodo String toString???


public int getCl(){
return cl;}

public ArrayList getPr(){
return pr;}

perch devo stamparne il contenuto in una jlist con



public List stampaOrdini(){
return ordini;}

jListOrdini.setListData(stampaOrdini().toArray());

Andrea1979
10-01-2005, 12:09
dovresti fornire un po' pi dettagli su che informazioni vuoi che vengano visualizzate da toString() sugli oggetti della tua classe.

Nella tua classe, passi da ArrayList ad un array di Object tramite il metodo toArray() di ArrayList? Con che tipo di oggetti hai caricato il tuo arraylist?

perzem
10-01-2005, 12:31
getCl restituisce un intero, mentre l'arraylist contiene delle stringhe.
ordini contiene cl pr che sono rispettivamente un intero ed un arraylist

LeleFT
10-01-2005, 13:44
ma il metodo stampaOrdini() (che non applicato a nessun oggetto, quindi sar un metodo della classe) cosa restituisce? Immagino un ArrayList, dato che a questo oggetto applichi il metodo toArray()... poi una cosa... in che classe vuoi applicare il metodo toString()? Che informazioni ti deve daer questo metodo? E' tutto molto confuso, cerca di spiegarti meglio...


Ciao. :ciauz:

Andrea1979
10-01-2005, 14:36
E' tutto molto confuso, cerca di spiegarti meglio...
Esatto :D posta tutto il codice della classe incriminata.

perzem
10-01-2005, 14:44
stampaOrdini mi restituisce una LinkedList che contiene oggetti di tipo Ordini.
Il metodo toString lo voglio applicare in una classe Frame che contiene l'interfaccia grafica. Dovrebbe restituirmi solo il contenuto dell'ArrayList dell'oggetto Ordini.



public class Ordini {
private String cl;
private ArrayList pr;

public Ordini(String cl, ArrayList pr) {
this.cl=cl;
this.pr=pr;
}




private LinkedList ordini=new LinkedList();
ordine=new Ordini(idCl,ord);
ordini.add(ordine);

Andrea1979
10-01-2005, 15:02
Allora dovresti implementare il metodo toString in Ordini, che roba carichi in ArrayList pr?

perzem
10-01-2005, 15:27
si io l'ho implementato nella classe ordini ma in toString non mi lascia mettere metodi con tipo diverso da String.
Carico strighe.

LeleFT
10-01-2005, 17:32
Il metodo toString() fa parte della classe Object ed ha il seguente prototipo:


public String toString()

Questo significa che qualsiasi classe voglia sottoporre ad override tale metodo deve attenersi a tale prototipo. Non possibile, pertanto, far ritornare al metodo toString() un oggetto di tipo diverso da String, a meno che non si aggiungano parametri.

Se vuoi che il metodo toString() ti restituisca un oggetto di tipo diverso da String, devi modificarne il protoripo aggiungendo almeno un parametro. Ad esempio:


public ArrayList toString(int a) {
return ...;
}

Esso andr, ovviamente, richiamato passandogli un intero (anche se questo intero non viene di fatto utilizzato dal metodo):


ArrayList al = mioOggetto.toString(0);

Non che questo sia un buon modo di procedere, comunque, dato che la semantica di un metodo chiamato toString() quello di ottenere una String che rappresenta l'oggetto chiamante...

Continuo, comunque, a non capire cosa vuol dire che il metodo toString() dovrebbe ritornare il contenuto dell'ArrayList dell'oggetto Ordini... fai un esempio del contenuto di ArrayList e di cosa vorresti che questo metodo ritornasse...


Ciao. :ciauz:

perzem
10-01-2005, 19:23
allora...
Io carico una lista di clienti, una lista di prodotti e poi una lista di ordini. La lista di ordini contine un campo per il codice del cliente e un'altro che un array contenente tutti i codici dei prodotti per quel cliente...
toString dovrebbe restituirmi questo elenco di codici contenuti nell'array.
Poi a far bene poi dovrei far una ricerca per sostituire i codici dei prodotti con i loro nomi...

Loading