Java是否有长期计划来统一原始数据类型和对象数据类型?怎么样?

时间:2015-02-27 17:34:04

标签: java object primitive

我想我已经阅读了一些关于Java的相关讨论,它将统一原始数据类型和对象数据类型。

有谁知道进展?有可能吗?我的意思是你可以在统一后保持原始数据类型的好处吗?

更新

相关讨论在这里:no more primitive data types in Java (JDK 10+). What do you think?

2 个答案:

答案 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的东西以避免这种情况,但这似乎更复杂。