Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    60

    problema stranissimo

    Ho un attributo String torna.

    Se faccio if(torna=="incrocio){...} non mi dà problemi.
    Mentre se faccio if(torna.equals("incrocio") oppure torna.contains("incrocio") mi lancia un eccezione.

    Perchè??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Che eccezione?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    A parte che hai dato un titolo inutile, supponendo che l'eccezione venga sollevata da quelle specifiche righe, ha tutta l'aria di essere una NullPointerException causata dalla String torna non inizializzata, cosa che non causerebbe problemi nel primo caso, ma lo farebbe nel secondo.
    Comunque, le stringhe non vanno paragonate con l'operatore ==.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    60
    Exception in thread "main" java.lang.NullPointerException
    at model.Tessera.calcolaPunteggio(Tessera.java:266)
    at model.Main.main(Main.java:122)

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    60
    anche se inizializzo torna=null mi da lo stesso problema

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da loma
    anche se inizializzo torna=null mi da lo stesso problema


    Non ho capito, se hai fatto

    codice:
    torna = null;
    
    if (torna.equals("blabla"))
    mi pare ovvio che si sollevi una NullPointerException.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    60
    xkè ovvio?? spiegami please..

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da loma
    xkè ovvio?? spiegami please..
    Ti consiglio di leggere i primi capitoli di un buon libro sul linguaggio, e soprattutto imparare a consultare le API, in questo caso ad esempio cercando la documentazione di NullPointerException: http://docs.oracle.com/javase/7/docs...Exception.html

    Alcune variabili contengono tipi primitivi (int, double ecc...) altre si riferiscono ad oggetti, come String: in questo ultimo caso, la variabile non contiene l'oggetto, ma un riferimento all'oggetto, che inizialmente è null; se dichiari una String, o un qualsiasi altro oggetto, inizialmente avrai solo un riferimento nullo, in realtà non è stato creato nessun oggetto String, quindi non è possibile invocare alcun metodo.

    Del resto, se torna non contiene alcuna stringa, che senso ha paragonarlo ad un'altra stringa?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    60
    cavolo sono proprio un pir...
    Grazie, ma se io ho una stringa null per vedere se è null come devo fare con l'uguale è l'unico metodo o sbaglio??

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da loma
    cavolo sono proprio un pir...
    Grazie, ma se io ho una stringa null per vedere se è null come devo fare con l'uguale è l'unico metodo o sbaglio??
    se devi vedere se è null:

    codice:
    if (s == null)
    E puoi farlo con qualsiasi altro oggetto.
    Il contenuto degli oggetti invece non si fa con == ma col metodo equals.

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.