Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] uscita da funzione

    salve a tutti,

    ho questo codice:

    codice:
    private void nomeMetodo(){
    ...
    String inputIndice;
    ..
    do{
     inputIndice=JOptionPane.showInputDialog(...);
     if(inputIndice==null) return; // come mai non mi esce da nomeMetodo?
    } while(!Utilita.testaStringa("^\\d+$", inputIndice));
    qualcheMetodo(inputIndice); // riga n
    ...
    } // di nomeMetodo


    bene, come mai, anche se utilizzo return, arrivo comunque a riga n, generando un'eccezione?

    grazie. :)

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Perchè hai dichiarato inputIndice come String.
    Per poter funzionare devi utilizzare il metodo equals.
    codice:
    private void nomeMetodo(){
    ...
    String inputIndice;
    ..
    do{
     inputIndice=JOptionPane.showInputDialog(...);
    
     // Utilizza una delle due .... o entrambe 
     if(inputIndice.equals(null)) return; // esce 
     if(inputIndice.equals("")) return; // esce 
    
     // con == NON ESCE 
     // if(inputIndice==null) return; // come mai non mi esce da nomeMetodo?
    } while(!Utilita.testaStringa("^\\d+$", inputIndice));
    qualcheMetodo(inputIndice); // riga n
    ...
    } // di nomeMetodo
    Ciao,
    Brainjar.
    Ciao, Brainjar

  3. #3
    grazie per la tua risposta. :)
    allora, con

    codice:
    if(inputIndice.equals("")) return;
    ottengo lo stesso effetto di prima.

    con

    codice:
    if(inputIndice.equals(null)) return;
    ottengo una NullPointerException proprio su tale riga.

    inputIndice e' una stringa perche' showInputDialog ritorna una stringa.

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    In effetti 'return' dovrebbe farti uscira dal metodo. Se non
    ti funziona prova a dichiarare


    codice:
    private int nomeMetodo()
    String inputIndice;
    ..
    do{
     inputIndice=JOptionPane.showInputDialog(...);
    
     // Utilizza una delle due .... o entrambe 
     if(inputIndice.equals(null)) return 0; // esce 
     if(inputIndice.equals("")) return 0; // esce 
    
     // con == NON ESCE 
     // if(inputIndice==null) return; // come mai non mi esce da nomeMetodo?
    } while(!Utilita.testaStringa("^\\d+$", inputIndice));
    qualcheMetodo(inputIndice); // riga n
    ...
    } // di nomeMetodo
    Non ho elementi per darti una risposta più completa.

    Ciao,
    Brainjar.
    Ciao, Brainjar

  5. #5
    Originariamente inviato da Brainjar
    In effetti 'return' dovrebbe farti uscira dal metodo. Se non
    ti funziona prova a dichiarare
    provo a dichiarare cosa? :|
    grazie. :)

    ah, ho capito.
    il problema e' che sto implementando actionEvent di ActionListener che, come si sa, non ritorna nulla.

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.