Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    52

    problema ritorno double di un metodo

    guardate questo metodo:

    public double getBalance(int accountNumber)
    {
    for(int i=0; i<accounts.size(); i++)
    {
    BankAccount a = accounts.get(i);
    if(accountNumber == a.getAccountNumber())
    return a.getBalance();
    }
    }

    è un metodo di una classe che sfrutta un ArrayList. il problema come detto nel titolo riguarda il ritorno del double. come vedete ho inserito return a.getBalance() all'interno del if, ma il compilatore mi da errore: mi dice che non c'è nessun ritorno di double. vi assicuro che il metodo getBalance restituisce un double (infatti anche sostituendolo con un numero double mi da errore). come posso fare? grazie...

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

    Re: problema ritorno double di un metodo

    Originariamente inviato da auron567
    vi assicuro che il metodo getBalance restituisce un double
    Ma il problema non è il return a.getBalance(); che hai messo!
    Il compilatore deve assicurarsi che qualunque sia il "flusso" di esecuzione del metodo, ci sia comunque sempre il return di un valore, visto che il tipo di ritorno non è void.

    Ora ... è perfettamente possibile che non si arrivi mai a quel tuo return, perché magari il tuo accountNumber non è stato trovato. O perché non ci sono elementi nella lista. E allora? Vedi bene che il metodo rimane "sguarnito" del return!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    52

    Re: Re: problema ritorno double di un metodo

    Originariamente inviato da andbin
    Ma il problema non è il return a.getBalance(); che hai messo!
    Il compilatore deve assicurarsi che qualunque sia il "flusso" di esecuzione del metodo, ci sia comunque sempre il return di un valore, visto che il tipo di ritorno non è void.

    Ora ... è perfettamente possibile che non si arrivi mai a quel tuo return, perché magari il tuo accountNumber non è stato trovato. O perché non ci sono elementi nella lista. E allora? Vedi bene che il metodo rimane "sguarnito" del return!
    ah capisco... non ci avevo pensato! e come potrei fare allora? qualche consiglio per rendere questo metodo funzionante? devo aggiungere un return alla fine? ma che tipo di return posso aggiunger ese nn viene trovato neanche un elemento?

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

    Re: Re: Re: problema ritorno double di un metodo

    Originariamente inviato da auron567
    ah capisco... non ci avevo pensato! e come potrei fare allora? qualche consiglio per rendere questo metodo funzionante? devo aggiungere un return alla fine? ma che tipo di return posso aggiunger ese nn viene trovato neanche un elemento?
    Una soluzione è quella di usare un tipo di ritorno che permetta di rappresentare un doppio stato, ovvero un double o un qualcosa che indica "nessun double". In tal caso basta un Double (la classe Double ... non il tipo primitivo). Quindi puoi ritornare o un valore oppure null.

    Un'altra soluzione è quella di lanciare una qualche eccezione se non trova il balance. Se vuoi puoi definirne una nuova es. BalanceNotFoundException.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    52

    Re: Re: Re: Re: problema ritorno double di un metodo

    Originariamente inviato da andbin
    Una soluzione è quella di usare un tipo di ritorno che permetta di rappresentare un doppio stato, ovvero un double o un qualcosa che indica "nessun double". In tal caso basta un Double (la classe Double ... non il tipo primitivo). Quindi puoi ritornare o un valore oppure null.

    Un'altra soluzione è quella di lanciare una qualche eccezione se non trova il balance. Se vuoi puoi definirne una nuova es. BalanceNotFoundException.
    Grazie mille! davvero gentile scusa per queste domande stupide, ma sono ancora alle prime armi...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.