繁体   English   中英

是否可以在java中定义使用原语的自定义类型?

[英]Is it possible to define custom types in java that work with primitives?

例如,以下是语法正确的代码

Double number = 10.0;

是否可以定义我自己的类,如Price

Price myPrice = 10.0;

实际编译?

自动装箱和自动拆箱仅适用于基元。 您正在谈论的概念类似于C ++转换。 不幸的是,Java中没有这样的东西。 你能做的最好的就是

Price myPrice = new Price(10.0);

不,您无法为数字量定义自己的基元类型。

声明Price myPrice意味着变量myPrice将是Price类型并将用作其实例。

您可以拥有以下有效权。

假设你声明变量myPrice类型的Price 可以通过myPrice引用访问某些实例变量。

Price myPrice = new Price();
myPrice.value = 10.0;
myPrice.currency = "Dollar"; 
etc ....

你不能扩展Double类,因为它是最终的。

但是你可以扩展Number类并实现Comparable接口 - 实际创建Double类的方式。

不,它与语言紧密相连。

只有原语可以在没有new关键字的情况下被实例化,除了String ,虽然不是原语,但可以使用原语语法来分配。 new String("foo")"foo"都会这样做(请注意,这些并不完全相同 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM