作者AlphaCall (阿伐扣)
看板java
标题[问题] 如何自订一个可以直接=的类别
时间Fri Dec 19 20:44:08 2014
话说我找了好多文章, 但好像没看过有人在讲这个
可能这问题真的太蠢了所以没人会去讨论 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://webptt.com/cn.aspx?n=bbs/java/M.1418993051.A.369.html
1F:→ darkk6: 这个要去改 compiler 吧... 12/19 21:08
2F:→ bleed1979: bleed...key word:operator overloading java 12/19 21:09
3F:→ nanashi07: Implicit Conversions? 12/19 21:24
4F:推 popcorny: Integer那个叫做auto boxing/unboxing 是语言层次的东西 12/19 21:41
5F:→ popcorny: 算是特例。自己写的class无法这样做。 12/19 21:41
6F:推 roder: 你自订的层级没有系统预设的高阿... 12/19 22:49
7F:推 LPH66: 这在别的语言 (eg. C++) 叫做 operator overloading 12/19 22:51
8F:→ LPH66: 但 Java 没有这种东西 12/19 22:51
9F:推 s3748679: 可以试试看Groovy (推坑 12/19 23:51
10F:→ AlphaCall: 没关系啦,也没有一定要这样做 @@ 只是在宣告上比较方便 12/20 11:35
11F:推 LaPass: C#也有operator overloading,不过java没有 12/22 09:42
12F:→ ssccg: C#有Struct、ValueType,在primitive的处理跟java不太一样 12/22 09:59
13F:→ ssccg: 不过C#也不能overload =,在这边要用implicit coversion 12/22 10:29
14F:推 wuliou: Java不支援 你可以用C++ XD 12/23 00:40