我正在尝试在JAVA 10中引入的新功能,在其中发现了一个非常有趣的事实,即您不能使用null声明变量。
在您编写以下代码后,
var a = null;
它抛出一个错误:
变量初始值设定项为null
现在,众所周知,我们不能将原始类型声明为null,因此下面的语句没有任何意义。
int a = null;
这意味着,如果开发人员正在使用null初始化var,则它肯定要在其中放置一个Object,而不是文字val。如果是这样,我的问题是
为什么编译器不将其视为Object var而是抛出错误。
另一方面,如果您编写以下语句,则可以很好地工作:
var a = (Object)null;
用null声明var的原因是什么
考虑以下情况,我想初始化var并想在条件块外使用它:
var a = null;
if(some condition) Initialize with some arguments
else Initialize with some other arguments
//Use a variable here
因此,在这种情况下,由于我们希望a的范围在条件块之外,因此我们有必要初始化它,如果if块,则它将为null,这在使用var时是不可能的。
噜噜哒
元芳怎么了
慕神8447489
相关分类