为什么Java在声明原始数据类型时不允许null

Vis*_*ant 20 java wrapper

这是在延续我刚才的问题,并accroding对这个问题的答案,包装类的宣言

Java将原始数据类型包装到包装类然后为什么

char c = null; // invalid
int i = null; // invalid
Run Code Online (Sandbox Code Playgroud)

不允许但是

Character cObj = null; // valid
Integer iObj = null; // valid
Run Code Online (Sandbox Code Playgroud)

被允许.

Ant*_*sss 39

因为基元表示值,而Object变量表示复杂数据对象的引用(类似于指针).没有空值一般,它是一个特殊的关键词"无引用"或空引用 - 这是非常不专业的答案,但我想这将是最合适的.

此外,您认为什么可能是null的数值?0?-1?但是,那些是有效的整数,还有什么呢?

我强烈建议您开始熟悉以下复杂的Java教程.您一直在询问的每个方面都在那里解释并通过示例支持.


Kay*_*man 31

null意思是"缺乏对象".引用可以缺少对象,原语不能.