在javascript中,赋值给var的null的java等价物是什么?
在我的JS文件中,我有
var previousChar = null;
现在我用Java手动移植了代码,但我得到一个错误,字符不能被赋值为null
使用“\0”是否相等
下面是js中的代码-
previousChar=null;
nextChar=null;
var str='abc';
previousChar='a';
nextChar='c';
在Java中应该是这样的,但它会给出错误
previousChar = null;
# 1 楼答案
您只需将变量声明为char,而无需将其赋值为null值:
然后:
这会奏效的
您所犯的错误是由于基本类型的处理方式与“真实”对象的处理方式不同。它们不能设置为null,这意味着您不能执行以下操作:
这将抛出NullPointerException
# 2 楼答案
Java将未显式初始化的引用类型的静态成员和实例成员都设置为null。您必须为var变量赋值,而不是null
# 3 楼答案
无法将
null
分配给char
变量,因为char
是一种基本类型如果在
previousChar
或nextChar
上有一些检查,则必须检查正在移植的代码如果没有检查(不像
if (previousChar === null)
),您可能会在Java中使previousChar
和nextChar
未初始化但是很可能有一些检查,否则变量就不会用
null
初始化。在这种情况下,您还需要将该逻辑移植到java。使用某些值替换null
(例如0
),或者使用其他布尔变量。最后,您可以使用Character
包装类型而不是char
,但这是开销