首页 > 解决方案 > 如何将“null”值分配给 Java 中的 int[] 数组中的单个元素

问题描述

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

例如:

int[] num = new int[3];

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

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

但是当我在 Object 数组中尝试相同时,我可以将“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 中的所有数组都是 Object 类型。如果我在这里错了,请纠正我。

标签: javaarrays

解决方案


原始 Java 整数不能是null,但Integer包装原始的类int可以是null。这是一个需要考虑的选项:

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

Java 中的装箱规则使其在大多数情况下都非常容易使用intInteger互换。


推荐阅读