相关疑难解决方法(0)

Java:自动装箱和铸造有什么区别?

这个问题是关于"为什么autoboxing在Java中使一些调用变得模棱两可?"

但通过阅读答案,有许多参考铸造,我不确定我完全理解差异.

有人可以提供简单的解释吗?

java autoboxing casting

22
推荐指数
3
解决办法
3万
查看次数

Autoboxing:所以我可以写:Integer i = 0; 而不是:Integer i = new Integer(0);

Autoboxing似乎归结为我可以写:

Integer i = 0; 
Run Code Online (Sandbox Code Playgroud)

代替:

Integer i = new Integer(0);
Run Code Online (Sandbox Code Playgroud)

因此,编译器可以自动将基元转换为Object.

这是个主意吗?为什么这很重要?

java autoboxing

10
推荐指数
3
解决办法
1万
查看次数

在cmd中编译但在Netbeans中编译时出错

我有一个小java文件给出如下.

    class abc{
    public static void main(String args[]){
        Object a= 9;
        int b= (int)a;
        System.out.print(b);
    }
}
Run Code Online (Sandbox Code Playgroud)

它在cmd中编译时出错,但在Netbeans中没有.此外,当我用'(整数)a'替换'(int)a'时,它在cmd和Netbeans上编译并运行正常.

    class abc{
    public static void main(String args[]){
        Object a= 9;
        int b= (Integer)a;
        System.out.print(b);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是什么原因,我该如何解决这个问题?

编辑:编译第一个代码时出现的错误是:

    C:\Users\ANKIT.ANKITSHUBHAM-PC>javac abc.java
    abc.java:4: inconvertible types
    found   : java.lang.Object
    required: int
                            int b= (int)a;
                                        ^
    1 error
Run Code Online (Sandbox Code Playgroud)

编辑:这个问题不是关于铸造.这是为什么当我使用'(int)'将对象转换为int时cmd和Netbeans的行为不同,但在使用'(Integer)'进行转换时表现相同.

java netbeans

9
推荐指数
3
解决办法
614
查看次数

将Object转换为原始int

如何将对象(不是String)(如TreeNode.item)转换为类似int的原语.

java

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×4

autoboxing ×2

casting ×1

netbeans ×1