Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Rplus
    Registrato dal
    Mar 2002
    Messaggi
    150

    [JAVA] problemi con singleton

    sto realizzando un logger e mi trovo nella necessità si utilizzare il singletone per permettere una sola istanza di tale oggetto..

    ho provato in questo modo ma ottengo un errore "Type mismatch: cannot convert from FileLogger to Logger" ogni volta, cosa che prima senza singleton non succedeva (nella precedente versione non c'era il metodo putInLog() poichè facevo tutto da getLogger() che faceva return SelectLogger() ).

    il codice delle classi LoggerFactory (che leggendo dal file di properties restituisce uno dei 3 tipi differenti di logger) è questo:
    codice:
    import java.util.*;
    import java.io.*;
    
    import org.isf.volterra.corsojava.es.log.Logger;
    
    public class LoggerFactory {
    
    	private static LoggerFactory pLogger;
    
    	private LoggerFactory() {}
    	
    	/**
    	 * @param nessuno
    	 * @return un Logger
    	 */
    	static LoggerFactory getLogger() {
    		if (pLogger == null) {
    			pLogger = new LoggerFactory();
    		}
    		//SelectLogger();
    		return pLogger;
    	}
    	
    	public Logger putInLog() {
    		return SelectLogger();
    	}
    	
    	public Logger SelectLogger() {
    		Properties p = new Properties();
    		try {
    			p.load(new FileInputStream("datigenerali.properties")); //legge tutte le righe del file di properties
    			String LogginValue = p.getProperty("LoggerType"); //legge il tipo di log impostato
    			if (LogginValue.equalsIgnoreCase("file")==true)
    				return new FileLogger();
    			else if (LogginValue.equalsIgnoreCase("db")==true)
    				return new DatabaseLogger();
    			else
    				return new ConsoleLogger();
    		} catch(Exception e){
    			System.out.println("(non è stato possibile leggere il file di properties, logging su console attivato)");
    			return new ConsoleLogger(); //logga su console in caso di errore
    		}
    	}
    }
    mentre questo è quello della classe di test:

    codice:
    public class TestLogger {
    
    	/**
    	 * classe test della Factory Method Logger
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		/*LoggerFactory hFact = new LoggerFactory();
    		Logger hLog = hFact.getLogger();
    		hLog.log("messaggio di log: classe = " + hLog.toString());
    		*/
    		LoggerFactory.getLogger().putInLog().log("ciao");
    	}
    
    }
    dove risiede il mio errore? non riesco a venirne fuori

    grazie per l'aiuto.. ciao

  2. #2
    Utente di HTML.it L'avatar di Rplus
    Registrato dal
    Mar 2002
    Messaggi
    150
    ok risolto, c'era un import ad una classe che non aveva assolutamente senso e che ancora adesso non capisco come sia finito lì


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.