java - 我不明白如何让我的程序从整数返回 int 值

标签 java integer int

 public static int getComputerMoveAI(int left)
 {
    Integer returnValue = 0;
    Integer place = nimMachine.size() - left;
    returnValue = nimMachine.get(place).get(((int)Math.random()*place)+1);
    plays[place] = returnValue;
    return intValue(returnValue);
 }

我希望我的程序返回一个 int 值,以便 main 可以使用它,但我不明白如何实现这一点。我知道这是不正确的,但我把它放在我想要将 Integer 更改为 int 的位置。我必须使用 Integer 作为我的数组列表。

最佳答案

Integerint 将根据系统需要自动从一种更改为另一种。这称为 autoboxing .

这可以在以下代码中看到:

class Ideone {
    public static int foo() {
        Integer rv = Integer.valueOf(42);
        return rv;
    }

    public static Integer bar() {
        int rv = 42;
        return rv;
    }

    public static void main (String[] args) {
        System.out.println(foo());
        System.out.println(bar());
    }
}

( ideone )

这会打印出 42 和 42。但请注意,foo() 中的 rv 是一个 Integer,而 bar( ) 它是一个 int - 每个返回值的“错误”类型。

这里发生的事情是 intbar()foo( ),通过装箱和拆箱过程,Integer 将转换为 int

您不需要执行 returnValue.intValue()Integer.valueOf(someInt) 或任何其他方法调用来将其中一个转换为另一个案件。让系统为您做。它会起作用的。

关于java - 我不明白如何让我的程序从整数返回 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27308891/

相关文章:

java - Messenger应用的流或数据报套接字

java - 问题 - Java 中的容器自动改变大小

java - 在不使用数组的情况下获取整数的最低和最高值?

java - 读取字符并检查它们是否是数字

c - 如何从用户那里获取整数的特定长度?

c# - 将字符串列表转换为相应的int c#

java - 当Jsoup解析只包含 "0"的Html标签时,会返回null?

java - 未找到 HTTP 请求与 URI 的映射

pandas - 如何将整数映射到 Pandas 数据框中的字符串值

java - id 的数据类型应该是什么?