java - retour à partir de la méthode de la matrice de
J'ai créé ce morceau de code:
public static String[] get_data()
{
conn = getInstance();
String[] data_array = null;
if(conn != null)
{
Statement query;
try
{
query = conn.createStatement();
String sql = "SELECT data_x FROM table_x";
ResultSet result = query.executeQuery(sql);
result.next();
int count = result.getInt("data_x");
result.close();
data_x_array = new String[count];
for (int x = 1; x <= count; x++)
{
String data_x = result.getString(x);
data_x_array[x] = data_x;
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
return data_x_array;
}
Je viens de créer une classe, où les données de la base de données sont collectées dans un tableau.
Maintenant, je veux juste retourner le tableau à partir de cette méthode.
Mais ce que je reçois est:
data_array cannot be resolved to a variable
Quelqu'un pourrait m'aider ?
Salutations!
Mise à JOUR:
j'ai changé d'extrait de:
public static String[] get_data()
{
conn = getInstance();
String[] data_array = null;
if(conn != null)
{
Statement query;
try
{
query = conn.createStatement();
String sql = "SELECT data_x FROM table_x";
ResultSet result = query.executeQuery(sql);
result.next();
int count = result.getInt("data_x");
result.close();
data_array = new String[count];
for (int x = 1; x <= count; x++)
{
String data_x = result.getString(x);
data_x_array[x] = data_x;
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
return data_x_array;
}
Quand je compile juste:
Invalid value for getInt() - 'value_in_table'
Ce que quelqu'un sait ce?
Salutations!
data_array
n'est pas dans le même champ d'application quereturn(data_array);
- Vous déclarez data_array mais essayez d'utiliser data_x_array
Vous devez vous connecter pour publier un commentaire.
Une chose que tout le monde a oublié de mentionner
lèvera une exception ArrayIndexOutOfBoundsException.
Solution Possible
Vous avez défini votre variable à l'intérieur de la
while
boucle c'est à dire qu'il n'est pas visible à l'return
déclaration. De Plus, vous avez défini votre méthodestatic void
, ce qui signifie pas de valeur de retour est attendu. Utilisationstatic String []
à la place.Puisque ce n'est pas accessible à l'extérieur du bloc de la boucle while, la compilation est de se plaindre de la même chose.
Essayez ceci:
Votre déclaration de
String[]
n'est pas dans le même champ d'application que l'instruction de retour.Vous avez besoin de les déclarer au début de la portée.
Et vous avez besoin de changer l'en-tête de la fonction:
Il y a deux choses à corriger ici:
Cette méthode est déclarée pour renvoyer rien. Modifier:
Votre variable
String[] data_array
est déclaré dans la boucle while, il n'est pas connu. Votre demande de retour est en dehors de cette boucle, de sorte qu'il n'y ai pas accès.Déplacer la variable en dehors de la boucle:
L'esprit que vous devez déplacer la déclaration et l'initialisation de l'extérieur de la
while
boucle, ou vous écrasera les données précédemment stockées de ce tableau par l'initialisation de nouveau. Et aussi l'esprit, que vosfor
boucle va écraser les données actuelles de toute façon ... vous devriez penser à stocker les données de ligne dans un autre tableau, ou il sera perdu.