繁体   English   中英

从Java中的void方法返回值

[英]Returning a value from a void method in Java

我有一种方法:

public void dbQuery(String query, String what) {
    try {
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(query);

        if(what.equals("temp_table")) {
            String temporary_table = rs.getString("table_name_temp");
            System.out.println(temporary_table);
            return;
        }

        }

    catch (Exception e) {
        e.printStackTrace();
        }

    finally {
        if (rs != null) rs.close();
        if (stmt != null) stmt.close();
        }

}



String query = "EXEC temptables.dbo.create_temp_cdr 'SIP'";
String temporary_table = db.dbQuery(query,"temp_table");

如何获得void的返回值以在另一个db.dbQuery()使用它?

PS:我需要dbQuery()的值,因此我可以构造另一个query以再次调用dbQuery()

如何获得void的返回值以在另一个db.dbQuery()中使用它?

“虚空的回归”是什么意思? 如果您的意思是“返回值”,那么就没有一个-这就是方法声明为void

如果您返回一个值,则不要将其设为空方法...鉴于此:

String temporary_table = db.dbQuery(query,"temp_table");

看起来您只想更改dbQuery以返回String 请注意,你需要制定出如何返回,如果what temp_table (您还应该修复异常处理-只是将堆栈跟踪信息打印到stdout,然后继续执行,而这几乎从来都不是正确的方法。)

您可以使方法不为空,并具有返回类型,然后可以使行

return temporary_table;

这将返回临时表变量。

另一种方法是通过引用该方法。 例如,您可以将StringBuilder对象传递给该方法。 在方法返回之后,对该方法中此对象的任何更改也将适用。

public void addToString(StringBuilder query, String toAdd) {
    query.append(toAdd);
}

对此方法的调用

StringBuilder query = new StringBuilder("start");
System.out.println(query.toString());
addToString(query, "end");
System.out.println(query.toString());

将具有以下输出:

开始
开始

您不能从定义为void的方法返回值-按照定义,这意味着它不返回任何值。

如果您看到return; 声明在void方法中,基本上意味着这将结束当前方法并将处理返回给调用方。

我会让您的方法字符串而不是布尔。 虚空不会返回任何东西。

void方法是什么都不返回的东西。 但是,您的需求似乎必须在上一层中使用此方法生成的值。 一种明显的解决方案是将其返回类型从void更改为String。 但是,如果您不想这样做,只需将一个字符串参数再传递给您的方法即可。 字符串是一个对象,因此在将其传递给方法时,实际上是在将该对象的引用传递给它。 只需在该字符串中设置您生成的值,您就可以使用该字符串变量在上一层中访问它(这有点类似于C中的按引用传递)。 我希望这种解决方法能够解决您的问题。 如果我错了,请纠正我。

实际上,他希望在VB中具有类似的功能。 首先,照常创建您的空隙。

private  Void getheightoflistview(ListView nameOfListView){
   //do whatever you want to do
    int numberOfItems = nameOfListView.getCount();
    //You want to return the numberOfItems 
}

因此,如果要返回整数值,只需将Void替换为Integer

private  Integer getheightoflistview(ListView nameOfListView){
   //do whatever you want to do
    int numberOfItems = nameOfListView.getCount();
    //You want to return the numberOfItems 
    return numberOfItems; //this is the Integer you want to return

}

并添加返回值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM