java - 如何在 Java 中将 "null"值分配给 int[] 数组中的单个元素

标签 java arrays

是否可以将“null”值分配给整数数组内的单个元素?

例如:

int[] num = new int[3];

num[0] = 23;
num[1] = null;
num[2] = 12

当我尝试这个时,它给出了一个错误。 incompatible types: <nulltype> cannot be converted to int

但是当我在对象数组中尝试相同的操作时,我可以将“null”值分配给数组内的单个元素。

下面是代码:

public class Person {
    private String name;
    private int age;

    public Person(String n, int a){
        name =  n;
        age = a;
    }

    public static void main(String[] args) {
        Person[] p = new Person[3];
        p[0] = new Person("John", 17);
        p[1] = null;
        p[2] = new Person("Mark", 18);
    }
}

Object 数组中允许“null”,而 int 数组则不允许。这是为什么?这两种数组类型有什么区别?我认为Java中的所有数组都是对象类型。如果我这里错了,请纠正我。

最佳答案

原始 Java 整数不能为 null,但包装原始 intInteger 类可以为 null >。这是一个值得考虑的选项:

Integer[] num = new Integer[3];
num[0] = 23;
num[1] = null;
num[2] = 12;

大多数时候,Java 中的装箱规则使得 intInteger 可以很容易地互换使用。

关于java - 如何在 Java 中将 "null"值分配给 int[] 数组中的单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53202284/

相关文章:

java - 多线程客户端/服务器应用程序java问题

java - 根据原句子数组对句子数组进行排序

python - 在 Numpy 数组的列中进行条件替换

javascript - forEach 与未初始化的数组

运行 hector 示例代码时出现 java.lang.ClassNotFoundException : org. apache.xbean.finder.archive.Archive 错误

java - Apache Spark 聚合键的工作原理

java - 如何使用javamail添加内联图像?

javascript - 如何查询 Mongoose 数据库以检索一项?

c - 在struct中需要一个 "variable"大小的二维数组

Java为什么销毁对象后finalize方法不工作?