Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47

    problema sullo scorrimento di una list

    Ciao a tutti.
    Sto programmando con java un programma che permette l'ottenimento da input di un file xml e,da quest'ultimo, la creazione di un arraylist.
    ll problema ,quello che mi ha portato a scrivere questo topic,è che dovrei fare un confronto tra delle date (una già ottenuta in formato GregorianCalendar ed un altra da ricavare,appunto dalla lista) ma non riesco a farlo.

    ecco il codice
    codice:
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.GregorianCalendar;
    import java.util.List;
    
    public class Dispensa {
    **listadata è la variabile con cui contrassegnerò la data di volta in volta ottenuta dalla lista
    	GregorianCalendar listadata=null;
    	int varidlist;
    
     public void eliminazioneProdottiScaduti(List list,GregorianCalendar datascad){
    		//questo è il metodo con cui controlleremo la lista e vedremo se c'è qualcosa da eliminare
    	 //scorriamo la lista
    	 SimpleDateFormat formatter2 = new SimpleDateFormat("dd-MM-yyyy");
    	 GregorianCalendar dataottenuta = new GregorianCalendar();
    	 
    	
    		
    	 for (int i=2;i<list.size();i++){
    		 //usiamo una variabile per gestire il contenuto indicato
    		 
    		 /*A QUESTO PUNTO NON RIESCO AD ANDARE AVANTI..la varidlist è una variabile che mi servirebbe per
    		  * trasformare il contenuto puntato nella lista  dal formato String al formato data
    		 */
    		 varidlist=list.getList(i);**qui mi dà l'errore**
    	   
    	 }
     }
    }
    L'errore è the method getList(int) is undefined for the type List .
    Grazie,spero di essere stato abbastanza chiaro.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: problema sullo scorrimento di una list

    Originariamente inviato da ypsilonp
    L'errore è the method getList(int) is undefined for the type List .
    Grazie,spero di essere stato abbastanza chiaro.
    Ed in effetti, l'interfaccia List non ha alcun metodo che si chiami "getList()" (né con parametri, né senza). Forse intendevi usare il metodo "get()", che prende come parametro un intero che rappresenta la posizione di un oggetto nella lista e restituisce l'oggetto in quella posizione.

    Consiglio di tenere sempre sotto mano la documentazione delle classi che si vanno a usare: documentazione dell'interfaccia java.util.List.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    grazie..però il problema non è risolto..
    scrivendo:
    codice:
    varidlist=list(i).get();
    esce The method list(int) is undefined for the type Dispensa

    scrivendo:
    codice:
    varidlist=list.get(i);
    esce Type mismatch: cannot convert from Object to int !

    non riesco a trovare la codifica adatta..

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La prima è completamente sbagliata. L'oggetto si chiama "list" ed è il metodo get() che prende il parametro.

    La seconda ti stà ad indicare che stai cercando di assegnare ad una variabile intera (di tipo int) un oggetto (Object). Questo mi dice che tu stai lavorando con una versione di Java precedente alla 5.

    Se è così, allora è necessario anche un cast esplicito e il richiamo di un metodo apposito per ottenere un intero... sempre ammesso che la lista contenga deli oggetti Integer.

    codice:
    varidlist = ((Integer) list.get(i)).intValue();
    Sto andando a tentoni perchè non hai detto che tipo di oggetti contiene la lista, quindi il codice sopra funziona se e solo se gli oggetti sono di tipo Integer.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    Se è così, allora è necessario anche un cast esplicito e il richiamo di un metodo apposito per ottenere un intero... sempre ammesso che la lista contenga deli oggetti Integer.

    codice:
    varidlist = ((Integer) list.get(i)).intValue();
    Sto andando a tentoni perchè non hai detto che tipo di oggetti contiene la lista, quindi il codice sopra funziona se e solo se gli oggetti sono di tipo Integer.
    Grazie per i consigli..
    la lista contiene degli oggetti "String" che devo convertire in data..

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    up!.
    Scrivendo
    codice:
    variabileint=((Integer) a.get(i)).intValue();
    Mi dà l'errore
    codice:
    Exception in thread "main" java.lang.ClassCastException: java.lang.String
    	at package.ConfrontoListe.ConfrontoXML(ConfrontoListe.java:36)
    Ricordo che la lista è formata da elementi String.
    Grazie a chi mi aiuterà a risolvere questo problema!

  7. #7
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Puoi provare con

    codice:
    variabileint = Integer.parseInt((String)a.get(i));
    ma devi essere sicuro che la lista contenga stringhe in formato numerico (ossia compatibili con un int) e di valore non troppo elevato: ti ricordo che una variabile int contiene numeri fino a circa 2 miliardi, poi va in overflow.
    Se dovesse contenere dei timestamp, ad esempio, devi lavorare con dei long

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    47
    up.
    Prima di tutto grazie a tutti per i consigli.
    Sfortunatamente non riesco ancora a risolvere questo problema...
    Qualcuno mi potrebbe dire il procedimento per convertire daString(perchè la lista ha le date sotto forma di string) in GregorianCalendar e,se si può,anche l'istruzione con cui verificare se una è "+ vecchia" dell'altra ?
    Vi prego di aiutarmi perchè ,nel progetto che sto facendo,è una delle ultime cose.
    Ciao e grazie in anticipo!

  9. #9
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Perchè non ti estrai tu i vari campi della data dalla tua String (tramite charAt() e substring()) e poi non li usi per settare un GregorianCalendar?

    Per il confronto puoi utilizzare il metodo compareTo() della superclasse Calendar... trovi tutto sulla documentazione

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ok, non hai degli Integer, ma hai degli String, quindi per ottenere i vari oggetti userai un cast a String e una variabile, appunto, String:

    codice:
    String vardlist = (String) list.get(i);
    Poi, per convertire una stringa in data, era sufficiente una ricerca nel forum, dato che l'argomento è stato trattato centinaia e centinaia di volte.

    Si usa un SimpleDateFormat per semplificarsi la vita, ma bisogna porre attenzione al formato della stringa... ad esempio, faccio una supposizione: la stringa rappresenta una data nel formato "gg/mm/aaaa":

    codice:
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    GregorianCalendar gc = new GregorianCalendar();
    gc.setTime( sdf.parse(vardlist) );
    La variabile "vardlist" è quella ottenuta con il codice postato sopra.
    Non ho tenuto conto di eventuali eccezioni che possono essere sollevate dal parsing della stringa.

    Per avere tutte le informazioni sulla stringa di formato con cui costruire il SimpleDateFormat, dati un'occhiata alla documentazione della classe stessa: http://java.sun.com/j2se/1.4.2/docs/...ateFormat.html


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.