java - 如何将“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 类型。如果我在这里错了,请纠正我。
解决方案
原始 Java 整数不能是null
,但Integer
包装原始的类int
可以是null
。这是一个需要考虑的选项:
Integer[] num = new Integer[3];
num[0] = 23;
num[1] = null;
num[2] = 12;
Java 中的装箱规则使其在大多数情况下都非常容易使用int
和Integer
互换。
推荐阅读
- image-recognition - 解决编程难题
- java - 在 Json 中映射具有公共属性和动态名称的数组
- python - 运行具有 scipy 分布的 RandomizedSearchCV 时出现“溢出错误:Python int 太大而无法转换为 C long”
- common-lisp - 简单算术函数中无法访问的代码
- javascript - 将样式应用于 antd 表格列
- javascript - 如何在 Firebase Firestore 中查询数组中的两个值,其中一个值在另一个值之后被索引?
- javascript - 带有对象参数的 require() 函数?
- c# - 自动将数据写入文本框
- html - windows缩小时如何将标题和h1标题包装在一起
- sql-server - 从列中提取字符串中的文本