Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    - meno importante, hai usato X come type variable. Nulla di male o errato ma convenzionalmente si usa T
    Non lo sapevo, grazie!

    sarebbe anche buono creare una eccezione di più alto livello che incapsula l'eccezione di più basso livello.
    Quindi creo tipo "MyException extends - le varie eccezioni -"?
    La creazione del file, poi, andrebbe poi in MyException o in ReaderWriter (con un metodo apposito)?

    No, nel P.S. di prima non dicevo questo
    Anche io non intendevo questo >.<
    Nel mio caso, ritengo sia più appropriato passarlo al metodo. Il discorso è questo. Nel miniprogettino che dovrei fare adesso, devo scrivere e leggere da file solo Highscore. Avrei voluto fare una cosa più generica, di lettura e scrittura su file, in maniera tale da poter riutilizzare il codice in qualunque altro eventuale progetto...una classe di utilità appunto.

    Se fai un ReaderWriter<Highscore> allora è abbastanza chiaro che quella istanza la dovrai usare solo per leggere oggetti Highscore (quindi List<Highscore>). Per trattare un'altra classe, dovrai creare un'altra istanza, parametrizzata diversamente.
    Se non è questo che vuoi ... non è quello il design giusto!

    Poi c'è anche la questione del filename. Se non lo passi al costruttore, allora le istanze di ReaderWriter a cosa servono? O per dire meglio: due istanze di ReaderWriter in cosa si distinguerebbero e per cosa?
    Allora ho sbagliato design.
    La mia idea di partenza era di fare una classe che, indipendentemente dal file e dal tipo degli elementi all'interno dello stesso, potesse leggerli, scriverli, aggiungerli...Le istanze della classe ReaderWriter non avrebbero dovuto differire, sarebbe stata solo una classe che racchiudeva dei metodi utili.

    Grazie ancora del tuo tempo e della tua esperienza

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Mirco993 Visualizza il messaggio
    Quindi creo tipo "MyException extends - le varie eccezioni -"?
    No, la tua possibile es. ReadElementException può estendere Exception (o magari IOException). Poi l'eccezione di più basso livello (la "causa") la passi al costruttore della tua eccezione.

    Guarda ad esempio un sorgente di IOException, vedi che ha 4 costruttori, che sono quelli tipici: nessun argomento / String / String + Throwable / solo Throwable. Non si è obbligati ovviamente a metterli tutti, dipende dal senso e uso della eccezione.

    Quote Originariamente inviata da Mirco993 Visualizza il messaggio
    La creazione del file, poi, andrebbe poi in MyException o in ReaderWriter (con un metodo apposito)?
    Sicuramente non nel readElement. E comunque non ha granché senso (in questo tuo scenario) creare un file "vuoto" tanto per crearlo come "default". La serializzazione degli oggetti si basa su un protocollo di dati ben preciso che prevede in testa allo stream un "header" di 4 byte speciali. Se fai il file vuoto con f.createNewFile() e poi NON vai a serializzare davvero oggetti, al prossimo readElement il file c'è (non becchi FileNotFoundException) ma l'header è mancante e il costruttore di ObjectInputStream si schianta perché è già lì che cerca di leggere l'header.

    Quote Originariamente inviata da Mirco993 Visualizza il messaggio
    La mia idea di partenza era di fare una classe che, indipendentemente dal file e dal tipo degli elementi all'interno dello stesso, potesse leggerli, scriverli, aggiungerli...Le istanze della classe ReaderWriter non avrebbero dovuto differire, sarebbe stata solo una classe che racchiudeva dei metodi utili.
    Puoi fare: classe non generica, poi readElement "generico" che riceve Class e filename. Non c'è nulla di male di per sé.
    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.