有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在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;

共 (3) 个答案

  1. # 1 楼答案

    您只需将变量声明为char,而无需将其赋值为null值:

    char previous;
    char next;
    String str;
    

    然后:

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

    这会奏效的

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

    Long longObject = null;
    long longPrimitive = longObject;
    

    这将抛出NullPointerException

  2. # 2 楼答案

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

       char previous;
        previous="pre"
    
  3. # 3 楼答案

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

    如果在previousCharnextChar上有一些检查,则必须检查正在移植的代码

    如果没有检查(不像if (previousChar === null)),您可能会在Java中使previousCharnextChar未初始化

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