2016-02-12 88 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爲例。