Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    missing return statement

    Allora ho questo metodo creaLista() che mi dovrà restituire un array di stringhe, a questo passo un ResultSet e un tipo. Vorrei poi che l'array che dovrebbe restituirmi sia visibile a tutta la classe e abbia ogni volta come nome il valore di tipo passato precedentemente in input.

    ad es.
    creaLista(rs1, tipo1);
    creaLista(rs2, tipo2);

    dovrebbe darmi 2 array uno che si chiama tipo1 e un altro tipo 2.

    Le domande sono 2 quindi:
    1) Come realizzo quello che ho detto sopra;
    2) Dove và messo il return (visto che mi dà errore di missing return statement)

    codice:
        private String[] creaLista(ResultSet cursore, String tipo) { 
                try {
                cursore.last();
                int numRows = cursore.getRow();
                cursore.beforeFirst();
                int i = 0;
                String[] lista = new String[numRows];
                
                    while(cursore.next()) {   
                       lista[i] = cursore.getString(tipo);
                       i++;
                    }
                
                } catch (SQLException e) {
                    alerts.showErr(e.getMessage());
                }   
        }

  2. #2
    1. Potresti fare cosi :

    codice:
     String[] tipo1;
    String[] tipo2;
    tipo1=crealista(rs1);
    tipo2=crealista(es2);
    In tal caso però il metodo deve avere un solo parametro.

    2. il return è l'ultima istruzione del blocco try

    ciao ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    per copiare l'array in un nuovo array ho fatto
    codice:
    public class .... {
         private String[] variabile
         //...
    }
    
    //...
    variabile = creaLista(rs, "MIOTIPO");
    //...
    ma a quanto pare prende solo il primo valore, cioè quello di indice 0, se cerco di fare un print su variabile[1] mi dà errore di out of bound.

  4. #4
    Dalla definizione della funzione getRow

    getRow()
    Retrieves the current row number.

    Ritorna il numero della riga attuale, quindi nn ritorna il numero di righe all'interno del resultset. alla prima iterazione quella funzione ritorna 1, quindi ti alloca un array di dimensione 1.
    Invece di memorizzare i valori direttamente in stringa memorizzali in una List o in un set e risolvi il tuo problema, perché non hai problemi di dimensionamento.

    Ciao ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    ho cambiato il mio creaLista in questo modo...
    codice:
        private String[] creaLista(ResultSet cursore, String tipo) throws SQLException {
                ArrayList<String> lista=new ArrayList<String>();
                while(cursore.next()) 
                    lista.add(cursore.getString(tipo));
                return lista.toArray(new String[lista.size()]);
        }

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    RISOLTO grazie a tutti.

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.