我想我已经阅读了一些关于Java的相关讨论,它将统一原始数据类型和对象数据类型。
有谁知道进展?有可能吗?我的意思是你可以在统一后保持原始数据类型的好处吗?
更新
相关讨论在这里:no more primitive data types in Java (JDK 10+). What do you think?
答案 0 :(得分:1)
Scala是目前拥有更丰富类型系统的答案。
请注意,基元不可为空,默认值为零,而对象的默认值为null。如果某些值既不是true也不是false,那么代码会如何中断,而是null呢?
答案 1 :(得分:1)
在我看来,基元可能只是被编译器翻译成幕后的对象,尽管仍然需要支持较旧的字节码。由于空值,我们无法采取其他方式。例如:
int x;
将被解释为:
Integer x = new Integer(0);
功能性有点自动完成其中一些。现在你可以这样做:
Integer x = 0;
这是最近推出的“自动装箱”功能。
如果这是方法,我个人并不是那么激动。它只会减少一些语法糖。它还可能导致冲突:
void myFunc(Integer i) { ; }
void myFunc(int I) { ; }
我猜他们可以将原语包装成扩展Integer的东西以避免这种情况,但这似乎更复杂。