-4

如果一个方法的返回类型是 int 并且如果它返回的是 -1 它实际上是什么意思?

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

4 回答 4

4

Java 中的integer 是有符号的,因此可以返回一个负数。在 Java 中,这通常用于需要返回整数但需要返回错误指示的方法。例如,当String#indexOf(int ch)没有找到某个字符时,它返回-1表示它没有找到。

但是,在您的特定方法中,我会说返回 aboolean或抛出Exceptionwhen tis会更合适null。根据你的例子很难说。

int: int 数据类型是一个 32 位有符号二进制补码整数。它的最小值为 -2,147,483,648,最大值为 2,147,483,647(含)。

于 2012-09-10T10:14:44.160 回答
0

我认为这是用java编写的c代码。我认为这应该抛出一个异常并利用 Java 的异常处理框架。我认为这段代码正在传回 -1 以指示错误。

我认为应该发生的事情是

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

}

我还将方法名称更改为 java 标准的 camelCase。没有更多信息,很难看到正在发生的事情。特别是当您检查未传递给方法的 t 时。

虽然我可能完全错了,它可能只是传回 -1 ,它在你的代码中有一些上下文。

于 2012-09-10T10:14:54.270 回答
0

它似乎是用另一种语言编写的代码,也许它应该是布尔值甚至是另一种类型的数据。您可以做的一件事是在将其适应 Java 之前了解它在另一种语言中的作用。

于 2012-09-10T10:20:18.387 回答
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

于 2012-09-10T10:22:07.730 回答