J'écris un programme qui interrogea une base de données MS Access, renvoie la requête en tant que jeu de résultats, puis je souhaite convertir finalement ce résultat défini dans une matrice de chaîne, de sorte que je puisse le transmettre dans le constructeur d'un Swing JCOMBOBOX - de sorte que la combinaison indiquera les éléments renvoyés par la requête.
J'ai pu stocker les lignes du résultat défini dans une arrachelist, puis convertir cette arrayliste en une matrice d'objet et que le ComboBox va listera le corrects, mais comme objets. Je ne peux tout simplement pas lancer cette arrayliste à un tableau à chaîne. Est-ce que quelqu'un sait si cela est possible? Voici une partie de mon code ... p>
java.lang.ArrayStoreException at java.lang.System.arraycopy(Native Method) at java.util.Arrays.copyOf(Unknown Source) at java.util.ArrayList.toArray(Unknown Source) at kidsfirstdb.Main.main(Main.java:23)
3 Réponses :
Le code ci-dessus convertir liste de chaînes à un tableau String. Dans votre cas, vous créez Liste des objets de sorte que vous ne pouvez pas convertir directement au tableau String. En général, vous avez 2 choix: p>
Tout comme une note de côté - les méthodes Java doivent commencer par lettre minuscule p> String [] = arrLocations locations.toArray (new String [0]); code> p>
Chaîne value = rs.getObject (i) .toString (); code> li>
J'ai essayé avant, et il me donnait: Java.Lang.ArraystoreException à java.lang.System.arraycopy (Native Method) à java.util.Arrays.copyOf (Source inconnue) à java.util.ArrayList.toArray ( Source inconnue) à kidsfirstdb.Main.main (Main.java:23)
Un bon travail DroidIn. Mais le fait est que que la liste renvoyée est une liste de la liste. Même si nous utilisons toString () ou rs.getString (). Il ne fonctionne pas pour la liste renvoyée par la méthode.
Il est conceptuel. L'idée est - si vous avez besoin d'oranges, ne commencez pas avec des pommes
Je cent pour cent d'accord. Mais il faut savoir les pommes et les oranges. Et il semble qu'il ne savait pas que, par conséquent, il a exception et il n'a pas pu trouver la cause.
ArrayList<String> al = new ArrayList<String>(); while (rs.next()) { ArrayList<String> record = new ArrayList<String>(); for (int i = 1; i <= columns; i++) { String value = rs.String(i); record.add(value); } String value = methodWhichConvertsArrayListToStringTheWayYouNeedItFormatted(record); al.add(value); } return al;
Merci de votre aide. J'ai essayé ce que vous suggérez, et il me semble encore être obtenir ces exceptions sur String [] = arrLocations locations.toArray (new String [0]);
Son parce que votre revenu ArrayList, n'est pas la liste de chaînes, mais de ArrayList, et que ArrayList est d'avoir des chaînes finalement.
J'ai modifié mon message pour inclure un code, ce qui pourrait vous aider. À votre santé.
Pourquoi ne pas utiliser rs.getString (). Je recommande de ne pas le faire bien. Mais cela résoudrait votre problème. Je veux dire seulement avec traiterai chaîne depuis le début. Exemple,
String[][] arrLocations = locations.toArray(new String[locations.size()][0]);