什么是java等价的null在javascript中分配给var?

时间:2018-03-25 11:08:04

标签: javascript java

在我的JS文件中,我有

var previousChar = null;

现在我手动将代码移植到Java中,但是我收到的错误是该字符无法指定为null。

也正在使用' \ 0'是否平等?

以下是js中的代码 -

previousChar=null;
nextChar=null;

var str='abc';
previousChar='a';
nextChar='c';

在Java中它应该是这样的,但它会给出错误

previousChar = null;

3 个答案:

答案 0 :(得分:1)

您可以简单地将变量声明为char而不将其指定为空值:

char previous;
char next;
String str;

然后:

str = "abc";
previous = 'a';
next = 'c';

这将有效。

您遇到的错误是由于原始类型的处理方式与“真实”对象不同。它们不能设置为null,这意味着您不能执行以下操作:

Long longObject = null;
long longPrimitive = longObject;

这将抛出NullPointerException;

答案 1 :(得分:1)

您无法将null分配给char变量,因为char是基本类型。

如果对previousCharnextChar进行了一些检查,您需要检查要移植的代码。

如果没有检查(类似于if (previousChar === null)),您可能会在Java中保留previousCharnextChar未初始化。

但很可能有一些检查,否则变量不会用null初始化。在这种情况下,您还需要将该逻辑移植到java。使用某个值作为null的替代(例如0),或使用其他布尔变量。最后,您可以使用Character包装器类型而不是char,但这只是开销。

答案 2 :(得分:-2)

未显式初始化的引用类型的静态和实例成员都被Java设置为null。您必须为var变量指定一些值而不是null。

   char previous;
    previous="pre"