2016-02-12 90 views
0
public class Autoboxing { 
public static void main(String[] args) { 
    int x=10; 
    Integer oldValue=x; 
    change(oldValue); 
    System.out.println("value:"+oldValue); 
} 
static void change(Integer value){ 
    value=100; 
} 

}自动装箱。值没有改变

你好,我想autobox一个int值到整型。 然后将Integer对象传递给一个方法来更改数字。 但是这个数字并没有改变。它仍然打印出10? 有人会发现我的错误。 在此先感谢。

+0

Java是通过值而不是通过引用,这意味着在调用'oldValue'方法'change'后,将不会影响您在被调用方法中所做的修改。 – justRadojko

+1

static int change(int value){ value = 100; return 100; } public static void main(String [] args){// TODO代码应用程序逻辑 int x = 10; Integer oldValue = x; int z = change(oldValue); System.out.println(“value:”+ z); }这会给你100 – Akhil

回答

1

原始类型的包装是immodifiables。

这意味着你不能改变整数的内容,但只能重新分配它。

你将有任何immodifiable类相同的行为。以String为例。