相关疑难解决方法(0)

为什么Java自动装箱不会扩展到自动装箱类型方法的方法调用?

我想将原语转换为字符串,我试过:

myInt.toString();
Run Code Online (Sandbox Code Playgroud)

这失败并出现错误:

int cannot be dereferenced
Run Code Online (Sandbox Code Playgroud)

现在,我得到的原语不是引用类型(即不是Object),所以不能有方法.然而,Java 5引入了自动装箱和拆箱(一个C#......我在C#中从未喜欢过,但这不是重点).因此,使用自动装箱,我希望上面的内容将myInt转换为Integer,然后调用toString().

此外,我相信C#允许这样的电话,除非我记错了.这只是Java自动装箱/拆箱规范的一个不幸的缺点,还是有充分的理由呢?

java autoboxing

51
推荐指数
5
解决办法
5909
查看次数

为什么int类型值不被装箱为Integer

public class Test {
static void test(Integer x) {
    System.out.println("Integer");
}

static void test(long x) {
    System.out.println("long");
}

static void test(Byte x) {
    System.out.println("byte");
}

static void test(Short x) {
    System.out.println("short");
}

public static void main(String[] args) {
    int i = 5;
    test(i);
}
}
Run Code Online (Sandbox Code Playgroud)

输出值为"long".

只能告诉我它为什么不是"整数",因为在Java中,int值应该是自动装箱的.

java

4
推荐指数
1
解决办法
172
查看次数

标签 统计

java ×2

autoboxing ×1