Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1

    [Java] Costruttore - static initialization blocks

    Salve, sto scrivendo una classe che contiene i messaggi di errore in più lingue.
    L'intenzione è quella di richiamarli scrivendo ad esempio ErrorMsg.NOT_NULL.get("IT").
    Per inizializzare le variabili ho usato un blocco static{...}, non avendo mai avuto la necessità di usarlo, non conosco bene il funzionamento. A questo punto mi è sorto un dubbio, ma ogni volta che richiamo un messaggio viene rieseguita l'inizializzazione? Oppure viene fatta solo la prima volta?
    Potete darmi delucidazioni.

    Di seguito il codice della classe:
    codice:
    public class ErrorMsg {
    	public static Map<String, String> NOT_NULL = new Hashtable<String, String>();
    	
    	static {
    		NOT_NULL.put("IT", "ERROR: VALORE NOT NULL");
    
    
    		NOT_NULL = Collections.unmodifiableMap(NOT_NULL);
    	}
    ​}
    Grazie e ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    No, i blocchi di inizializzazione statici vengono eseguiti una ed una sola volta al caricamento (inizializzazione) della classe da parte della JVM. Puoi pensarli come ad un "costruttore di classe".


    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 L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da MasterZero Visualizza il messaggio
    Di seguito il codice della classe:
    No, a parte il tuo dubbio sugli static init block, così non è comunque una buona cosa. Per la localizzazione dei messaggi in genere si usa java.util.ResourceBundle .
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Potresti farmi un esempio su come si utilizza?
    Ultima modifica di MasterZero; 11-10-2013 a 17:56

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da MasterZero Visualizza il messaggio
    Potresti farmi un esempio su come si utilizza?
    http://docs.oracle.com/javase/tutori...ndle/list.html
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Grazie a tutti. Per il chiarimento sugli static inizialization blocks e sulla localizzazione. Ho utilizzato java.util.ResourceBundle ed è molto interessante . Ciao

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.