-1
votes

Comment retourner une matrice en méthode Java

Je voudrais créer une méthode qui renvoie une matrice de chaîne. J'ai essayé ce code mais j'ai des problèmes avec le retour T_NAZWAJADLOSSU CODE> TRAY.

public static String[] listJadlospis(){
    String[] nazwajadlospisu = null;
    try{
        state = con.createStatement();
        result = state.executeQuery("SELECT NazwaJadlospisu FROM Jadlospis GROUP BY NazwaJadlospisu");
        while(result.next()){
            Array z = result.getArray("NazwaJadlospisu");
            nazwajadlospisu = (String[])z.getArray();
            }
        }
    catch(SQLException e){
        System.err.println("Query error. " +e);
        }
    catch(NullPointerException e){
        System.err.println("Element not found." +e);
        }

    return nazwajadlospisu;
    }


6 commentaires

Vous manquez un retour à la fin de votre méthode


et votre compilateur aurait dû vous dire cela.


Évitez d'utiliser des sous-traitants et des lettres de départ capitalisées dans les noms de variables de portée locale. Voir: Conventions de nommage Java


Êtes-vous sûr qu'un tableau de chaînes simple est la structure de données correcte dont vous avez besoin et non d'au moins une matrice en 2 dimensions pour stocker des lignes et des colonnes? Parce que dans votre code, votre tableau T_NAZWAJADLOSSU contiendrait la dernière ligne de votre instruction SELECT (car vous continuez de le remplacer dans la boucle)


Retour T_NAZWAJADLOSSU; doit afficher les erreurs car T_NAZWAJADLOSSU est défini dans le bloc et non accessible en dehors du bloc


Si vous obtenez une nullpointeException, vous devez déterminer pourquoi et le réparer, au lieu de simplement l'attraper et de laisser tout continuer à continuer.


3 Réponses :


3
votes

Vous pouvez essayer comme ça. Vous devez déclarer le type de tableau qui devrait être retourné. Cette variable chaîne [] T_NAZWAJADLOSSU code> doit être déclarée. En plus, vous devez retourner le tableau en dehors d'essayer le bloc de capture. Je fournis un exemple ici.

public static String[] listJadlospis() {
    String[] T_NazwaJadlospisu = null; // DECLARE
    try {
        state = con.createStatement();
        result = state.executeQuery("SELECT NazwaJadlospisu FROM Jadlospis GROUP BY NazwaJadlospisu");
        while (result.next()) {
            Array z = result.getArray("NazwaJadlospisu");
            T_NazwaJadlospisu = (String[]) z.getArray(); // ASSIGN

            //String T_NazwaJadlospisu =
            //result.getString("NazwaJadlospisu");
            //System.out.println("Jadłospis: " + T_NazwaJadlospisu);
        }

    } catch (SQLException e) {
        System.err.println("Query error.");
    } catch (NullPointerException e) {
        System.err.println("Element not found.");
    }
    return T_NazwaJadlospisu; // RETURN
}


3 commentaires

aussi je suggérerais de jeter l'exception au lieu de l'imprimer


Pourriez-vous au moins expliquer ce que vous avez fait?


J'ai mis à jour le code pour indiquer les modifications via des commentaires majuscules.



0
votes

dans votre code T_NAZWAJADLOSSU est déclaré à l'intérieur du bloc tandis que. Donc, sa portée est limitée à ce bloc uniquement.

Il peut donc y avoir deux solutions à ce problème:

1) renvoyez-la de la boucle tandis que. Ceci reviendra la première occurrence de la boucle.

2) Déclare-le en dehors de la boucle et le retourner après la boucle. Et cela retournera la dernière occurrence de la boucle.

Donc, selon votre scénario d'entreprise, vous pouvez utiliser la solution en conséquence.

retour à la première occurrence: xxx

Dernière occurrence: xxx

Peu d'autres observations: < P> 1) Les noms de variables ne sont pas conformes aux normes Java.

2) La manipulation des exceptions devrait faire quelque chose de significatif plutôt que de l'imprimer seulement.


0 commentaires

1
votes

est ce code dont vous avez besoin? xxx


1 commentaires

Ok, j'ai adopté votre chemin et il semble que je me suis débarrassé du dernier message d'erreur. J'ai besoin de vérifier ce qui a été retourné de la méthode. Il semble que c'est plus que moins de quoi j'ai besoin. Merci.