Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回语句的问题_Java_Methods_Return - Fatal编程技术网

Java 返回语句的问题

Java 返回语句的问题,java,methods,return,Java,Methods,Return,我对return Station>有问题

我对return Station>有问题<我想将所有杂志名称存储到

ArrayList<String> ListNameMagazine = new ArrayList<String>();
这是我的回报声明:

public String getResult(String sql)
throws SQLException
{
    ResultSet rs = st.executeQuery(sql);
    ResultSetMetaData resultsetmetadata = rs.getMetaData();

    //String just_try = null;
    while (rs.next()) { 
         System.out.println("Result:"+rs.getString(1));
         //just_try = rs.getString(1);
         //return just_try;
    }
    return null;    //return just_try;
}
问题在返回语句中

for (String s : ListNameMagazine)
    {
        System.out.println(s); // show the data
    }
当注释(//)被我删除,最后一个返回空值时;我删除。它变成这样:

public String getResult(String sql)
throws SQLException
{         
     ResultSet rs = st.executeQuery(sql);
     ResultSetMetaData resultsetmetadata = rs.getMetaData();
     String just_try = null;
     
     while (rs.next()) { 
         //System.out.println("Result:"+rs.getString(1));
        just_try = rs.getString(1);
        return just_try;
     }

     return just_try;
 }
当我使用此语句显示数据时

for (String s : ListNameMagazine)
    {
        System.out.println(s); // show the data
    }
结果只是

Magazine4

Magazine4

Magazine4

Magazine4

@“我弄不清楚小姐在哪里@

但是当我在return语句中显示数据时

public String getResult(String sql)
throws SQLException
    {         
    ResultSet rs = st.executeQuery(sql);
    ResultSetMetaData resultsetmetadata = rs.getMetaData();
    String just_try = null;

    while (rs.next()) {     
        System.out.println("Result:"+rs.getString(1));
        //just_try = rs.getString(1);
        //return just_try;
    }

    return null;
}

数据显示了我想要什么。我知道我只是错过了某个地方,但我不知道在哪里。我希望你们能找到它。THX

你们的问题是返回只返回一个东西,它会立即返回,函数将退出!您正在重新调整一本杂志的名称,请尝试一下

while (rs.next()) { 

    //System.out.println("Result:"+rs.getString(1));

   just_try = rs.getString(1);

  return just_try;

}
因此,您开始在rs中迭代,并得到名称:

just_try = rs.getString(1);
然后你告诉代码返回只要你试试

return just_try;
此时将返回just_try,函数将退出!我认为您的问题在于,您希望函数继续运行,并不断向调用它的代码返回值,但这不是它的工作方式

我怀疑你想做的是这样的:

ArrayList<String> ListNameMagazine;
ListNameMagazine = Show.getResult("Select Name_Magazine from Magazine");
ArrayList ListNameMagazine;
ListNameMagazine=Show.getResult(“从杂志中选择杂志名称”);
然后在函数getResult中:

public ArrayList<String> getResult(String sql) throws SQLException {

    ResultSet rs = st.executeQuery(sql);

    ResultSetMetaData resultsetmetadata = rs.getMetaData();

    ArrayList<String> returnArrayList = new ArrayList<String>();

    while (rs.next()) { 

        returnArrayList.add(rs.getString(1));

    }
    return returnArrayList;

}
公共ArrayList getResult(字符串sql)抛出SQLException{ 结果集rs=st.executeQuery(sql); ResultSetMetaData ResultSetMetaData=rs.getMetaData(); ArrayList returnArrayList=新建ArrayList(); while(rs.next()){ returnArrayList.add(rs.getString(1)); } 返回数组列表; }
xan:当您尝试返回列表时,您的方法返回一个字符串

签名必须更改为

public List<String> getResult(String sql) throws SQLException;
公共列表getResult(字符串sql)抛出SQLException;
not List but ArrayList public ArrayList getResult(String sql)抛出SQLException^^thxNo,它应该是List。谢谢大家-我工作有点忙,从问题中复制签名时忘了更新签名。干杯您应该返回列表;实现并不重要,您可能希望在以后更改它(如果您决定使用更合适的列表实现)。在这种情况下,您所要保证的是,您可以将其视为一个列表,因此可以对接口进行编码。没有问题。请仔细检查,因为我在方法名称中犯了一个错误(返回类型仍然是字符串,我忘记了更改)。请有足够代表性的人或ferdinand自己更正代码段上的缩进,以便其他人更容易阅读?(在任何要进行代码格式化的行前面应该有4个空格,任何选项卡都应该有4个空格)@xan-done。费迪南德:除了代码级的问题,我还担心数据库的设计。你应该仔细阅读规范化。拥有Magazine1..Magazine4列是否是良好的数据库设计,这一点还很不清楚。