我有一个方法:
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()
答案 0 :(得分:9)
如何在另一个db.dbQuery()中使用它返回void?
“虚空的回归”是什么意思?如果你的意思是“返回值”,那么不是一个 - 这就是方法被声明为void
的点。
如果你想要返回一个值,那么不要把它变成一个void方法...给出这个:
String temporary_table = db.dbQuery(query,"temp_table");
您似乎只想更改dbQuery
以返回String
。请注意,如果what
不是 temp_table
,您需要确定要返回的内容。 (你还应该修复你的异常处理 - 只需将堆栈跟踪打印到stdout然后继续,不管几乎从不正确的方法。)
答案 1 :(得分:1)
你可以让你的方法不是空的,并且有一个返回类型,那么你可以拥有行
return temporary_table;
将返回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());
将输出:
开始
startend
答案 2 :(得分:0)
您无法从定义为void
的方法返回值 - 根据定义,这意味着它不会返回任何值。
如果在return;
方法中看到void
语句,则基本上意味着这将结束当前方法并将处理返回给调用方。
答案 3 :(得分:0)
我会创建你的方法字符串而不是bool。 Void不会返回任何东西。
答案 4 :(得分:0)
void方法不会返回任何内容。 但是,您的要求似乎必须使用前一层中此方法生成的值。 一个明显的解决方案是将其返回类型从void更改为String。 但是,如果您不想这样做,只需将一个字符串参数传递给您的方法。 String是一个对象,因此当您将它传递给方法时,实际上是将该对象的引用传递给它。只需在此字符串中设置生成的值,您就可以使用该字符串变量在前一层中访问它(它类似于C中的Pass by Reference)。 我希望这种解决方法能解决您的问题。 如果我错了,请纠正我。
答案 5 :(得分:0)
事实上,他希望在VB中有类似功能的东西。 首先,像往常一样创建你的空白。
private Void getheightoflistview(ListView nameOfListView){
//do whatever you want to do
int numberOfItems = nameOfListView.getCount();
//You want to return the numberOfItems
}
因此,如果要返回Integer值,只需将Void替换为整数
即可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
}
并添加返回值