Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    lista static di stringhe

    in una classe Java ho una lista di stringhe

    una volta inizializzata non cambia

    io l'ho definita static e la inizializzo in un blocco static in modo che rimanga come lista di classe

    è corretta come cosa?

    grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: lista static di stringhe

    Originariamente inviato da MyBloodyV.
    in una classe Java ho una lista di stringhe

    una volta inizializzata non cambia

    io l'ho definita static e la inizializzo in un blocco static in modo che rimanga come lista di classe

    è corretta come cosa?
    Lista intendi array ... o implementazione di List?

    Se però pensavi di renderla anche non mutabile, le cose vanno diversamente. Un array anche se lo metti come campo static e final, il suo contenuto può cambiare (se final è il reference che non può cambiare!).
    Anche il contenuto di un List può cambiare, a meno che lo "wrappi" (incapsuli ... rende meglio in italiano) in un List immutabile con unmodifiableList di Collections.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: lista static di stringhe

    Originariamente inviato da andbin
    Lista intendi array ... o implementazione di List?

    Se però pensavi di renderla anche non mutabile, le cose vanno diversamente. Un array anche se lo metti come campo static e final, il suo contenuto può cambiare (se final è il reference che non può cambiare!).
    Anche il contenuto di un List può cambiare, a meno che lo "wrappi" (incapsuli ... rende meglio in italiano) in un List immutabile con unmodifiableList di Collections.
    no non tanto l'immutabilità (so che è il reference immutabile) ma il fatto che così viene istanziata solo una volta, mi pare più corretto che sia insomma una variabile di classe; mi sbaglio? ok forse è una piccolezza

    è un List

    grazie

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: lista static di stringhe

    Originariamente inviato da MyBloodyV.
    no non tanto l'immutabilità (so che è il reference immutabile) ma il fatto che così viene istanziata solo una volta, mi pare più corretto che sia insomma una variabile di classe; mi sbaglio? ok forse è una piccolezza

    è un List
    Se non deve essere per ogni oggetto ma appunto "globale", è corretto, cioè di per sé non c'è nulla di male o sbagliato tecnicamente.
    Ed essendo "di classe" appunto lo puoi istanziare e riempire una volta sola.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    Re: Re: Re: Re: lista static di stringhe

    Originariamente inviato da andbin
    Se non deve essere per ogni oggetto ma appunto "globale", è corretto.
    Ed essendo "di classe" appunto lo puoi istanziare e riempire una volta sola.
    ma sì, nel senso che i valori della lista devono essere gli stessi sempre, indipendentemente dal singolo oggetto

    grazie

  6. #6

    Re: Re: Re: Re: Re: lista static di stringhe

    Originariamente inviato da MyBloodyV.
    ma sì, nel senso che i valori della lista devono essere gli stessi sempre, indipendentemente dal singolo oggetto

    grazie
    Da quello che ho letto nel tuo primo messaggio e capito, mi sembra che tu hai fatto bene.

    Se hai:
    codice:
    ...
    
    public class Ordine{
    
        private static List<Ordine> globale;
    
        static{
              globale = new LinkedList<Ordine>();
        }
    
        public Ordine(){
            ...
        }
        ...
    }
    globale viene istanziato una sola volta e presenterà lo stesso contenuto per tutte le istanze della classe Ordine.
    Quindi ad esempio potrai sapere l'ordine corrente dove si va a posizionare rispetto a tutti gli altri ordini effettuati.

  7. #7

    Re: Re: Re: Re: Re: Re: lista static di stringhe

    codice:
     
    
    public class Cucina{
    
        private static List<Pentole> pentoleLista;
    
        static{
              pentoleLista= new LinkedList<Pentole>();
        }
    
        public Cucina(){
            ...
        }
        ...
    }

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: Re: Re: lista static di stringhe

    Originariamente inviato da MyBloodyV.
    l'ho fatto perchè mi sembrava sbagliato istanziare una cosa più volte quando rimane sempre uguale; è corretto come rgaionamento?
    Ripeto che è corretto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9

    Re: Re: Re: Re: Re: Re: Re: Re: lista static di stringhe

    Originariamente inviato da andbin
    Ripeto che è corretto.
    scusami l'esempio non è proprio analogo, mi son sbagliato

    codice:
    public class Cucina{
    
        private static List<Pentole> pentoleLista;
    
        static{
              pentoleLista= new LinkedList<Pentole>();
        }
    
        public Cucina(){
            ...
        }
        ...
    }

    ecco qualcosa di simile alla mia

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: Re: Re: Re: Re: lista static di stringhe

    Originariamente inviato da MyBloodyV.
    codice:
    public class Cucina{
    
        private static List<Pentole> pentoleLista;
    
        static{
              pentoleLista= new LinkedList<Pentole>();
        }
    
        public Cucina(){
            ...
        }
        ...
    }

    ecco qualcosa di simile alla mia
    Ma gli inserimenti nella lista ... dove li fai? Se li fai nello static init-block, allora ok, sono d'accordo ed è appropriato.
    Se li fai nel costruttore di Cucina (o altro contesto "di istanza") .... non è detto.
    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.