[問題] 如何自訂一個可以直接=的類別

看板java作者 (阿伐扣)時間10年前 (2014/12/19 20:44), 編輯推噓6(608)
留言14則, 11人參與, 最新討論串1/2 (看更多)
話說我找了好多文章, 但好像沒看過有人在講這個 可能這問題真的太蠢了所以沒人會去討論 Orz 我想問的是, 像int, float, 都是可以直接把原始資料 用 int a = 1; 的方式下去宣告或執行的 但是 Integer 是屬於一個類別, 但他也可以 Integer a =1; 有看到相關的說法是說 在編譯的時候 Integer a = 1; 編譯器會把他變成 Integer a = Integer.valueOf(1) 那有沒有可能我也可以自訂一個例如 MyClass 的類別 然後他也可以達成 MyClass a = 1; 這樣呢? 謝謝各位前輩. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.133.23 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1418993051.A.369.html

12/19 21:08, , 1F
這個要去改 compiler 吧...
12/19 21:08, 1F

12/19 21:09, , 2F
bleed...key word:operator overloading java
12/19 21:09, 2F

12/19 21:24, , 3F
Implicit Conversions?
12/19 21:24, 3F

12/19 21:41, , 4F
Integer那個叫做auto boxing/unboxing 是語言層次的東西
12/19 21:41, 4F

12/19 21:41, , 5F
算是特例。自己寫的class無法這樣做。
12/19 21:41, 5F

12/19 22:49, , 6F
你自訂的層級沒有系統預設的高阿...
12/19 22:49, 6F

12/19 22:51, , 7F
這在別的語言 (eg. C++) 叫做 operator overloading
12/19 22:51, 7F

12/19 22:51, , 8F
但 Java 沒有這種東西
12/19 22:51, 8F

12/19 23:51, , 9F
可以試試看Groovy (推坑
12/19 23:51, 9F

12/20 11:35, , 10F
沒關係啦,也沒有一定要這樣做 @@ 只是在宣告上比較方便
12/20 11:35, 10F

12/22 09:42, , 11F
C#也有operator overloading,不過java沒有
12/22 09:42, 11F

12/22 09:59, , 12F
C#有Struct、ValueType,在primitive的處理跟java不太一樣
12/22 09:59, 12F

12/22 10:29, , 13F
不過C#也不能overload =,在這邊要用implicit coversion
12/22 10:29, 13F

12/23 00:40, , 14F
Java不支援 你可以用C++ XD
12/23 00:40, 14F
文章代碼(AID): #1Kb1sRDf (java)
文章代碼(AID): #1Kb1sRDf (java)