java - 从方法返回数组

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)

谁知道这个?

问候!

Spa*_*kOn 6

还有一件事,每个人都忘了提

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)


ran*_*sch 2

您的声明String[]与 return 语句不在同一范围内。

您需要在范围的开头声明它。

并且您需要将函数的标题更改为:

public static String[] get_data()
Run Code Online (Sandbox Code Playgroud)