Metodo ereditato da una classe astratta

di Anonimizzato8544 il
4 risposte
Salve ragazzi ho un problema logico nel mio codice, mi spigo ho una classe astratta Utente che ha al suo interno ha un metodo loggati che è stato definito nel seguente modo


boolean loggati(String id,String pass)
	{
		// per l'id ha senso non fare distinzione tra minuscole e maiuscole per la password no!
		if((this.id.equalsIgnoreCase(id))&&(this.pass.equals(pass)))
		{
			loggato=true;
			return loggato;
		}
		return false;
	}


ho una classe SempliceUser che estente il concetto di utente ed aggiunge una variabile double bitCoin... il punto è che quando mi dichiaro una variabile nel main di tipo sempliceUser e la setto con il costruttore nel seguente modo


// i primi due parametri vengono passati al costruttore della superClasse
sempliceUser utente1=new sempliceUser("giovanni ","qwerty",20);


poi provo ad eseguire il metodo di login facendo

	utente1.loggati("giovanni", "qwerty");


mi dice che non sono loggato... come è possibile??... giocando un pò con il debugger mi accorgo che la pass è effettivamente la stessa (sia a livello di stringa che a livello di id) il nome no! la stringa che contiene il nome giovanni ha un id =36 quando effettua la chiamata a funzione magicamente cambia il suo id a 32 e questo quindi mi fa fallire il controllo...ma come è possible

4 Risposte

  • broke31 ha scritto:


    
    sempliceUser utente1=new sempliceUser("giovanni ","qwerty",20);
                                                   ^
                                                   ^
    
    
    	utente1.loggati("giovanni", "qwerty");
    
    Io vedo uno spazio dopo il primo giovanni.
  • Come perdere 3 ore in una mossa lascia uno spazio in una stringa e comincia a farti tutti i film più assurdi in testa.... grazie adesso funziona:-)
  • Per evitare problemi di questo tipo puoi usare il metodo "trim" della classe String che semplicemente ti elimina gli spazi bianchi eventualmente presenti all'inizio e alla fine della stringa.. In questo modo applicando il metodo trim alla stringa " ciao " ottieni una nuova stringa "ciao"
  • Grazie gentilissimi!
Devi accedere o registrarti per scrivere nel forum
4 risposte