use*_*881 6 java arrays methods return
我创建了这个片段:
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;
}
Run Code Online (Sandbox Code Playgroud)
我刚刚创建了一个类,数据库中的数据被收集在一个数组中.
现在我只想从这个方法返回数组.
但我得到的是:
data_array cannot be resolved to a variable
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?
问候!
更新:
我改变了片段:
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;
}
Run Code Online (Sandbox Code Playgroud)
当我编译时:
Invalid value for getInt() - 'value_in_table'
Run Code Online (Sandbox Code Playgroud)
谁知道这个?
问候!
还有一件事,每个人都忘了提
String[] data_array = new String[999];
for (int x = 0; x <= 999; x++){}
Run Code Online (Sandbox Code Playgroud)
将抛出一个ArrayIndexOutOfBoundsException.可能解决方案
String[] data_array = new String[999];
for (int x = 0; x < 999; x++){}
Run Code Online (Sandbox Code Playgroud)
您的声明String[]与 return 语句不在同一范围内。
您需要在范围的开头声明它。
并且您需要将函数的标题更改为:
public static String[] get_data()
Run Code Online (Sandbox Code Playgroud)