2012-09-10 162 views
-4

如果一個方法的返回類型是int,並且它返回-1它實際上意味着什麼?Java返回類型

public int handle_get_multi_leg_net_quote(Message mmsg) throws Exception {   
     if (null != t) { 
        return 1; 
     } 
     return -1; 
    } 
+6

'-1'是*整數*。 – adatapost

+0

是的,當然它的一個基本的Java問題......但發佈背後的想法是要知道......是否代碼是基於一些其他語言......因爲在Java中我們有例外......那麼最新需要在特定方法中拋出-1 ... – Sandy

+0

這完全取決於具體方法的設計意圖。 Java中沒有像'throw -1'這樣的東西。 – EJP

回答

0

它似乎是用另一種語言編寫的代碼,也許它應該是一個布爾值或甚至另一種類型的數據。你可以做的一件事是在將它適配到Java之前,理解它在其他語言中的作用。

+0

是的,這就是我發佈這個問題的原因......即使它是一個愚蠢而且太基本的java問題。 – Sandy

4

int埃格爾在Java是簽署,因此它的確定,返回一個負數。在Java中,這通常用於需要返回整數的方法,但需要返回錯誤的指示。例如,當String#indexOf(int ch)未找到某個字符時,它將返回-1以指示未找到該字符。

然而,在特定的方法,我會說這將會是更適合返回boolean來替代,或者拋出一個Exceptiontnull。根據你的例子很難說。

int:int數據類型是一個32位簽署二的補碼整數。其 的最小值爲-2,147,483,648,最大值爲 2,147,483,647(含)。

+0

是當然它的一個基本的Java問題......但發佈背後的想法是要知道......是否代碼是基於一些其他語言......因爲在Java中我們有例外......那麼最新需要在特定情況下拋出-1 ... ... – Sandy

+0

@ user1367670:當然,歡迎您在這裏提問。在其他語言中,如C,不直接支持異常,通常返回'-1'來表示錯誤。在Java中,「異常」比較常見,就像你說的那樣。在這種情況下,返回'1'或'-1'沒什麼意義。 –

0

我認爲這是用java編寫的c代碼。我認爲這應該拋出一個異常並利用Java的異常處理框架。我會認爲這個代碼傳回-1來表示錯誤。

應該發生什麼,我認爲是

public int handleGetMultiLegNetQuote(Message mmsg) throws Exception {   
    if (null == t) { 
     throws new IllegalArugmentExeption("null t");    
    } 
    return 1; 

} 

我也改變了方法名是駝峯這是Java標準。沒有更多的信息,很難看到發生了什麼。特別當你檢查沒有傳入方法的時候。

雖然我可能是完全錯誤的,它可能只是傳回-1,它在代碼中有一些上下文。

0

int是Java中的32位。但是,意識到這些位中只有31個實際包含該數字是很重要的。例如,Integer.MAX_VALUE返回2^31 - 1,而不是2^32 - 1.最高有效位(最左邊的一個)是一個「符號」位。它會告訴你數字是正數還是負數:0表示這是一個正數,1表示這是一個負數。

所以結論是
-1是整數。

詳見鏈接:
http://radio.javaranch.com/corey/2004/04/12/1081786778000.html