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

作者: JustinHere (良葛格)   2014-12-22 08:56:51
※ 引述《AlphaCall (阿伐扣)》之銘言:
: 話說我找了好多文章, 但好像沒看過有人在講這個
: 可能這問題真的太蠢了所以沒人會去討論 Orz
: 我想問的是, 像int, float, 都是可以直接把原始資料
: 用 int a = 1; 的方式下去宣告或執行的
: 但是 Integer 是屬於一個類別, 但他也可以 Integer a =1;
: 有看到相關的說法是說 在編譯的時候
: Integer a = 1; 編譯器會把他變成 Integer a = Integer.valueOf(1)
: 那有沒有可能我也可以自訂一個例如 MyClass 的類別
: 然後他也可以達成 MyClass a = 1; 這樣呢?
: 謝謝各位前輩.
autobox、unbox 已經告訴你,那是編譯器幫你換成 Integer.valueOf,然後
你可以用 sugar 語法寫…
也就是說,在沒有 sugar 可用之下,你也可以寫個 MyClass.from 或 MyClass.valueOf
、MyClass.of,名稱隨便你取,例如:
MyClass a = MyClass.of(1);
配合 static import 就可以短些…
MyClass a = of(1);
這也是程式庫的常見做法…例如 Optional..
Optional option = Optional.of(something);
作者: bleed1979 (十三)   2014-12-22 09:39:00
這邊沒有噓文,又是良葛格,給推了。
作者: gpctv (gpctv)   2014-12-22 11:06:00
喔喔喔!!!推推推

Links booklink

Contact Us: admin [ a t ] ucptt.com