在我的JS文件中,我有
var previousChar = null;
现在我手动将代码移植到Java中,但是我收到的错误是该字符无法指定为null。
也正在使用' \ 0'是否平等?
以下是js中的代码 -
previousChar=null;
nextChar=null;
var str='abc';
previousChar='a';
nextChar='c';
在Java中它应该是这样的,但它会给出错误
previousChar = null;
答案 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
是基本类型。
如果对previousChar
或nextChar
进行了一些检查,您需要检查要移植的代码。
如果没有检查(类似于if (previousChar === null)
),您可能会在Java中保留previousChar
和nextChar
未初始化。
但很可能有一些检查,否则变量不会用null
初始化。在这种情况下,您还需要将该逻辑移植到java。使用某个值作为null
的替代(例如0
),或使用其他布尔变量。最后,您可以使用Character
包装器类型而不是char
,但这只是开销。
答案 2 :(得分:-2)
未显式初始化的引用类型的静态和实例成员都被Java设置为null。您必须为var变量指定一些值而不是null。
char previous;
previous="pre"