多态性、自动装箱和隐式转换
您认为 Java 中的自动装箱是多态性的一种形式吗?换句话说,您认为自动装箱扩展了 Java 的多态功能吗?
Scala 中的隐式转换怎么样?
我的观点是它们都是多态性的例子。这两个功能都允许以统一的方式处理不同数据类型的值。
我的同事不同意我的观点。谁是对的?
Would you consider autoboxing in Java to be a form of polymorphism? Put another way, do you think autoboxing extends the polymorphic capabilities of Java?
What about implicit conversions in Scala?
My opinion is that they are both examples of polymorphism. Both features allow values of different data types to be handled in a uniform manner.
My colleague disagrees with me. Who is right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自维基百科:
中的隐式转换是转换。一个对象被转换为另一个对象。
自动装箱是对象的创建(同样是转换)。
因此,这些不是多态性。
From Wikipedia:
Implicit conversions in Scala are conversions. One object gets converted to another object.
Autoboxing is the creation of an object (again, a conversion).
Therefore, these are not polymorphism.
我个人认为自动装箱是一种黑客行为,有时会产生意想不到的结果。
自动装箱的棘手部分在于它并不是真正的强制转换,它(仅)更改类型,而更多的是值转换。
I personally consider autoboxing as kind of a hack with sometimes unexpected results.
The tricky part of autoboxing is that it isn't really a cast, which (only) changes the type, but more of a value conversion.