Cita:
Iniciado por Xerelo Lo que necesitas es aplicar el patrón singleton
http://es.wikipedia.org/wiki/Singleton
Hay varias maneras de hacerlo, una muy sencilla
Código Javascript
:
Ver originalpublic class Config {
private static Properties props;
public static String getProperty(String property){
if(props==null) {
Creas el objeto properties y lo referencias con props
}
return props.getProperty(property);
}
Evidentemente tienes que añadir los controles de errores, y para llamarlo desde cualquier sitio sólo tienes que poner Config.getProperty(nombrePropiedad)
Al final, me ha quedado la cosa así:
Código PHP:
public class ArchivoProperties {
private static Properties properties;
// El constructor privado no permite que se genere un constructor por defecto
// (con mismo modificador de acceso que la definición de la clase)
private ArchivoProperties(){
throw new AssertionError("No se permite crear ejemplares de esta clase.");
}
public static String getProperty(String property){
if(properties == null) {
properties = new Properties();
try{
properties.load(new FileInputStream("datos.properties"));
}catch(IOException ex) {
ex.printStackTrace();
}
}
return properties.getProperty(property);
}
}
Y no me da error al "inicializar" los mensajes.
Pero me vuelve a plantear la duda:
Lo que me gustaría es que nada mas arrancar mi aplicación, lo primero que hiciese ésta es buscar el archivo Properties (y si no lo encuentra, dar un error y terminar porque la aplicación no puede funcionar sin este archivo)
Porque según lo que acabo de hacer, hasta que no se llama al método getProperty no comprueba (ni crea) dicho objeto Properties
¿Cómo haría eso?