簡體   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