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

作者: AlphaCall (阿伐扣)   2014-12-19 20:44:08
話說我找了好多文章, 但好像沒看過有人在講這個
可能這問題真的太蠢了所以沒人會去討論 Orz
我想問的是, 像int, float, 都是可以直接把原始資料
用 int a = 1; 的方式下去宣告或執行的
但是 Integer 是屬於一個類別, 但他也可以 Integer a =1;
有看到相關的說法是說 在編譯的時候
Integer a = 1; 編譯器會把他變成 Integer a = Integer.valueOf(1)
那有沒有可能我也可以自訂一個例如 MyClass 的類別
然後他也可以達成 MyClass a = 1; 這樣呢?
謝謝各位前輩.
作者: darkk6 (Mr. Pan)   2014-12-19 21:08:00
這個要去改 compiler 吧...
作者: bleed1979 (十三)   2014-12-19 21:09:00
bleed...key word:operator overloading java
作者: nanashi07 (NaNashi)   2014-12-19 21:24:00
Implicit Conversions?
作者: popcorny (畢業了..@@")   2014-12-19 21:41:00
Integer那個叫做auto boxing/unboxing 是語言層次的東西算是特例。自己寫的class無法這樣做。
作者: roder (尊重 q( ̄︶ ̄)p 包容)   2014-12-19 22:49:00
你自訂的層級沒有系統預設的高阿...
作者: LPH66 (-6.2598534e+18f)   2014-12-19 22:51:00
這在別的語言 (eg. C++) 叫做 operator overloading但 Java 沒有這種東西
作者: s3748679   2014-12-19 23:51:00
可以試試看Groovy (推坑
作者: AlphaCall (阿伐扣)   2014-12-20 11:35:00
沒關係啦,也沒有一定要這樣做 @@ 只是在宣告上比較方便
作者: LaPass (LaPass)   2014-12-22 09:42:00
C#也有operator overloading,不過java沒有
作者: ssccg (23)   2014-12-22 09:59:00
C#有Struct、ValueType,在primitive的處理跟java不太一樣不過C#也不能overload =,在這邊要用implicit coversion
作者: wuliou (wuliou)   2014-12-23 00:40:00
Java不支援 你可以用C++ XD

Links booklink

Contact Us: admin [ a t ] ucptt.com