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;
}
3 Réponses :
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
}
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.
dans votre code Il peut donc y avoir deux solutions à ce problème: p> 1) renvoyez-la de la boucle tandis que. Ceci reviendra la première occurrence de la boucle. P> 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. P> Donc, selon votre scénario d'entreprise, vous pouvez utiliser la solution en conséquence. P> retour à la première occurrence: strong> p> Dernière occurrence: strong> p> Peu d'autres observations: p> < P> 1) Les noms de variables ne sont pas conformes aux normes Java. P> 2) La manipulation des exceptions devrait faire quelque chose de significatif plutôt que de l'imprimer seulement. p> p> T_NAZWAJADLOSSU code> est déclaré à l'intérieur du bloc tandis que. Donc, sa portée est limitée à ce bloc uniquement.
est ce code dont vous avez besoin?
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.
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 i>
Ê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 code> T_NAZWAJADLOSSU code> contiendrait la dernière ligne de votre instruction SELECT (car vous continuez de le remplacer dans la boucle)
Retour T_NAZWAJADLOSSU; CODE> doit afficher les erreurs carT_NAZWAJADLOSSU code> est défini dans le bloc et non accessible en dehors du bloc code>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.