我是一个早期的初学者,我试图弄清楚java中的for-each迭代和引用变量是如何工作的,并为自己写了一个小测试代码来玩。
为了使用for-each循环,我首先需要一个数组,所以我创建了一个数组引用,但没有初始化它。
但是我的代码不会编译,因为显然我写的if语句是为了检查未初始化的数组引用而编写的,它使用了一个未初始化的变量。
public class ForEach {
public static void main (String[] args) {
// create array reference
int[] array;
//check if array reference has been initialized
if (array == null) {
System.out.println("No array has been found.");
}
else {
for (int i : array) {
if (array[i] != 0) {
System.out.println(array[i]);
}
}
}
}
}
我认为一个未初始化的数组引用的默认值应该是null,我可以在if语句中检查null。那么,为什么我会得到一个编译错误,告诉我变量' array '可能还没有初始化,否则如何检查空引用呢?
希望有人能帮我。事先非常感谢你。
P.S. 我的 for-each 循环是否有意义,都不是问题所在。现在;-)
null
和未初始化之间存在差异。
null仍然是有效值。局部变量不需要有任何值,但只要它们没有值,就无法读取它们。完全唯一合法的做法是赋予它价值。
只需将行<code>替换为int[]数组
带有int[]数组=null
一切都会好起来的。
当你为一个< code >类构造一个对象时,它的属性用默认值初始化。但是方法中定义的局部变量需要初始化。
如果你移动数组,如下所述,你会注意到错误消失了,因为现在它是一个类属性,将用< code>null初始化。
public class ForEach {
// create array reference
static int[] array;
public static void main (String[] args) {
//check if array reference has been initialized
if (array == null) {
System.out.println("No array has been found.");
}
else {
for (int i : array) {
if (array[i] != 0) {
System.out.println(array[i]);
}
}
}
}
}
类中的字段会被自动设置为null,因为它们最终可能会被使用,但是因为局部变量只能在局部使用,所以声明它们而不初始化它们会被认为是一个错误。
我在做线性探测。它散列了表大小mod上的值,并为此编写了一些代码。 它适用于除零(0)之外的每个值。当零在要散列的值中时,就像在java数组中一样,每个索引最初都是以零启动的。用零检查索引是否空闲,如果零要散列并且可以被覆盖,是否会引起麻烦。我还检查了null的相等性,但它会引发错误类型不匹配。 有人有什么建议吗?
问题内容: 我正在初始化这样的数组: NetBeans在此行指出一个错误: 我该如何解决这个问题? 问题答案: 上面的信息不正确(语法错误)。这意味着你正在分配一个仅可容纳元素的数组。 如果要初始化数组,请尝试使用: 注意两个声明之间的区别。将新数组分配给声明的变量时,new必须使用。 即使你纠正了语法,访问仍然是不正确的(你只能访问,因为Java中的数组索引是基于0的)。访问]将抛出。
在Java中,可以初始化数组,例如: Kotlin的数组初始化是什么样子的?
本文向大家介绍如何在Java 9的JShell中初始化数组?,包括了如何在Java 9的JShell中初始化数组?的使用技巧和注意事项,需要的朋友参考一下 Java中的数组 也是一个对象。我们需要声明一个数组然后创建。为了声明一个包含整数数组的变量,我们可以像int [] array一样提到。在数组中,索引 从0到(数组的长度-1)开始。 片段1 在下面的代码片段中,我们可以创建一个标记数组来存储
问题内容: 我必须在Java中以字节数组形式存储一些常量值(UUID),并且我想知道初始化这些静态数组的最佳方法是什么。这就是我目前的做法,但我觉得必须有更好的方法。 有什么我可以使用的,虽然效率可能较低,但看起来会更干净?例如: 问题答案: 使用将十六进制字符串转换为的函数,您可以执行 我建议您在使用Java将十六进制转储的字符串表示形式转换为字节数组中使用 DaveL定义的功能吗? 我将其插入
问题内容: 我想初始化一个BlackJack游戏的Player对象数组。我已经阅读了很多有关初始化原始对象(例如int数组或字符串数组)的各种方法的信息,但是我无法将此概念理解为我在此处尝试做的事情(见下文)。我想返回一个初始化的Player对象数组。要创建的播放器对象的数量是一个整数,我向用户提示。我以为构造函数可以接受一个整数值并在初始化Player对象的一些成员变量时相应地命名播放器。我