用户态自动装箱?
是否可以为您自己的类实现自动装箱?
为了说明我的例子,这就是我可能想要写的:
Foo foo = "lolcat";
这就是 Java 会在幕后做的事情(根据我自己的定义,在某个地方,以某种方式):
Foo foo = new Foo();
foo.setLolcat("lolcat");
那么,这是否可能以某种方式实现,或者它是 JVM-仅功能?
Is it possible to implement autoboxing for your own classes?
To illustrate my example, this is what I might want to write:
Foo foo = "lolcat";
And this is what Java would do (as per my own definitions, somewhere, somehow), under the hood:
Foo foo = new Foo();
foo.setLolcat("lolcat");
So, is this possible somehow, or is it a JVM-feature only?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,java不支持运算符重载(http://en.wikipedia.org/wiki/Operator_overloading)。
自动装箱是一项编译器功能,不适用于您自己的类。
其推理解释如下:
http://www.cafeaulait.org/javafaq.html#xtocid1902938
No, java does not support operator overloading (http://en.wikipedia.org/wiki/Operator_overloading).
Autoboxing is a compiler feature and not available for your own classes.
The reasoning is explained here:
http://www.cafeaulait.org/javafaq.html#xtocid1902938