[問題] 取得基本型別的reference

看板java作者 (阿瑜)時間11年前 (2014/07/16 11:54), 編輯推噓2(2012)
留言14則, 7人參與, 最新討論串1/2 (看更多)
版上的各位好, 想請教各位如何在java中取得基本型別如:int, char, ... 的reference呢? 寫個簡單的java code如下: public class Test { public void foo(int m) { m += 1; System.out.println(m); } public static void main(String[] args) { int temp = 0; System.out.println(temp); new Test().foo(temp); System.out.println(temp); } } 輸出的結果是: 0 1 0 因為在java中基本型別的變數名稱並不是reference 我想問的是如何可以取得temp的reference傳進函式裡 使得輸出變成: 0 1 1 解釋的有點亂,不知道我的表達是否清楚== -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.74.72.45 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1405482877.A.165.html

07/16 12:12, , 1F
沒辦法!! Java沒有這種語法
07/16 12:12, 1F

07/16 12:15, , 2F
未看先猜底下開始要講call by value/call by reference.
07/16 12:15, 2F

07/16 12:23, , 3F
你好,我知道call by value跟call by reference
07/16 12:23, 3F

07/16 12:24, , 4F
java除了基本型別以外,其他的變數名稱本身就是referenc
07/16 12:24, 4F

07/16 12:25, , 5F
所以java是無法取得基本型別的reference喔
07/16 12:25, 5F

07/16 13:14, , 6F
Excatly
07/16 13:14, 6F

07/16 13:36, , 7F
用boxing吧
07/16 13:36, 7F

07/16 14:18, , 8F
第一個想到的也是 boxing...不過弄這個有些眉角要顧
07/16 14:18, 8F

07/16 14:26, , 9F
temp變數不是primitive type,一樣也不行。
07/16 14:26, 9F

07/16 14:28, , 10F
還好我答對010~哈~但我還是要說要先搞清楚語言的特性再說
07/16 14:28, 10F

07/16 16:23, , 11F
auto boxing是個非常語焉不詳的東西 最好都用手動明確
07/16 16:23, 11F

07/16 16:24, , 12F
定義,不然都會踩到很多奇怪的地雷...
07/16 16:24, 12F

07/16 20:18, , 13F
定義新的class ,把你要的基本型別當成member ,然後傳object
07/16 20:18, 13F

07/16 20:19, , 14F
進去
07/16 20:19, 14F
文章代碼(AID): #1JnVTz5b (java)
文章代碼(AID): #1JnVTz5b (java)