- ✅
int[] array = new int[]{1,2,3};
- ✅
int[] array = {1,2,3};
- ✅
int[] array; array = new int[]{1,2,3};
- ❌
int[] array; array = {1,2,3};
有人能解释一下为什么最后一个是错误的,以及我们能够做到第二个的原因吗?
int[] array = new int[]{1,2,3};
int[] array = {1,2,3};
int[] array;
array = new int[]{1,2,3};
int[] array;
array = {1,2,3};
有人能解释一下为什么最后一个是错误的,以及我们能够做到第二个的原因吗?
new int[] { 1, 2, 3 }
)或数组初始化器({1, 2, 3})来初始化它。当对先前声明的字段或局部变量进行赋值时,我们只能使用表达式。你可以自己检查编译器的工作方式。它会隐式地添加这个结构:
new int[]
到数组初始化器,并且这段代码:
int[] array = {1, 2, 3};
编译后变成这样:
int[] array = new int[]{1, 2, 3};
请参阅文档:
• Java 语言和虚拟机规范
• 10.6. 数组初始化器
• 15.10. 数组创建和访问表达式