Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Salvare vettore di un certo tipo...

    Salve a tutti... volevo chiedervi un'iformazione: io sto scrivendo in JAVA un programma (agenzia viaggi ) e devo salvare un vettore contenente oggetti di tipo autobus di modo tale che alla prossima compilazione io mi ritrovi salvato tutti gli autobus che ho messo in quel vettore.Come posso fare ? (Ho già visto una discussione simile, ma si salvava un vettore qualsiasi.Io invece devo salvare un vettore di tipo Autobus)---- CIAO E GRAZIE ----

  2. #2
    beh un vettore è generico quindi

    se usi la 1.4 devi semplicemente castare l'oggetto es:

    Auotbus a = (Auotbus)v.get(i);

    se invece usi > 1.5

    Vector<Auotbus> v = new Vector<Auotbus>();
    in questo modo v.get(i) ti restiutisce direttamente un obj di tipo Auotbus.

  3. #3
    Perdonami ma non ho capito ... forse non mi sono spiegato bene. Innanzitutto io utilizzo l'ultima versione di java. Dato che chiamo questo metodo da una classe (ElencoAutobus):
    -----------------------------------------------------------------------------------
    public static <E> Vector <E> caricaSingoloVettore (File f)
    {

    ObjectInputStream ingresso = null;
    Vector <E> daRest = new Vector <E> ();
    try
    {
    ingresso = new ObjectInputStream(new BufferedInputStream (new FileInputStream(f)));

    daRest = (Vector) ingresso.readObject();
    }
    catch (FileNotFoundException excNotFound)
    {
    System.out.println("ATTENZIONE: NON TROVO IL FILE " + f.getName() );
    }
    catch (IOException excLettura)
    {
    System.out.println("ATTENZIONE: PROBLEMI CON LA LETTURA DEL FILE " + f.getName() );
    }
    catch (ClassNotFoundException excLettura)
    {
    System.out.println("ATTENZIONE: PROBLEMI CON LA LETTURA DEL FILE " + f.getName() );
    }
    finally
    {
    if (ingresso != null)
    {
    try
    {
    ingresso.close();
    }
    catch (IOException excChiusura)
    {
    System.out.println("ATTENZIONE: PROBLEMI CON LA CHIUSURA DEL FILE " + f.getName() );
    }
    }
    } // finally

    return daRest;

    }
    ------------------------------------------------------------------------------------
    Questo meodo mi restituisce un vettore ma ho problemi con il cast (Type safety) quando lo vado ad associare ad un vettore di tipo autobus:

    listaAutobus=(Vector<Autobus>) ServizioFile.caricaSingoloVettore(fAutobus);

    Grazie ancora per la disponibilità......Ciao

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da AlexDrast
    listaAutobus=(Vector<Autobus>) ServizioFile.caricaSingoloVettore(fAutobus);
    listaAutobus = ServizioFile.caricaSingoloVettore(fAutobus);

    senza cast, perché altrimenti sono due tipi non compatibili. E inoltre il processo di "inferenza" si può basare anche solo sul tipo della variabile a cui si fa l'assegnamento.


    EDIT Aggiungo: il tuo cast sarebbe corretto ed accettato se il metodo fosse stato dichiarato:
    public static <E extends Autobus> Vector <E> caricaSingoloVettore (File f)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Grazie hai ragione ... tuttavia ho ancora problemi con il cast (type safety) nella riga di programma del metodo caricaSingoloVettore:

    daRest = (Vector) ingresso.readObject();

    ho provato anche ad inserire il cast (Vector <E>) ma mi da ancora problemi. Come posso fare? Grazie ancora...

    (N.B. Dalla classe ElencoAutobus ,che contiene il vettore listaAutobus da caricare e salvare , chiamo il metodo caricaSingoloVettore e salvaSingoloVettore)

  6. #6
    niente ragazzi ... ho risolto GRAZIE di tutto e complimenti....Ciao

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da AlexDrast
    tuttavia ho ancora problemi con il cast (type safety) nella riga di programma del metodo caricaSingoloVettore:

    daRest = (Vector) ingresso.readObject();
    Lo so ... il compilatore ti dice che è "unchecked". Ma non puoi evitarlo, semmai puoi solo "sopprimere" il warning. Metti prima di quella assegnazione:

    @SuppressWarnings("unchecked")
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.