Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java数组索引问题_Java_Arrays_Nullpointerexception - Fatal编程技术网

Java数组索引问题

Java数组索引问题,java,arrays,nullpointerexception,Java,Arrays,Nullpointerexception,cantmano是索引,它从0开始。另一种方法随铁路超高++增加。 我再次检查0您的manojugador数组空元素,并且您的cantmano以某种方式指向其中一个空元素 例如,假设您有: ManoJugador [] cantmano = new ManoJugador[10]; cantmano[0] = new ManoJugador(); cantmano[1] = new ManoJugador(); cantmano[2] = new ManoJugador(); 如果数组超出索

cantmano是索引,它从0开始。另一种方法随铁路超高++增加。
我再次检查0您的
manojugador
数组空元素,并且您的
cantmano
以某种方式指向其中一个空元素

例如,假设您有:

ManoJugador [] cantmano = new ManoJugador[10];

cantmano[0] = new ManoJugador();
cantmano[1] = new ManoJugador();
cantmano[2] = new ManoJugador();
如果数组超出索引3,则有空值。这就是为什么当您尝试获取null的数字时,会得到NullPointerException

编辑

根据您的编辑:

是的,你肯定有一个空值。调试该部分,您将看到一些空值

提示:
System.out.println(java.util.Arrays.toString(someArray))


苏尔特

您的
manojugador
数组空元素,而您的
cantmano
不知何故指向其中一个空元素

例如,假设您有:

ManoJugador [] cantmano = new ManoJugador[10];

cantmano[0] = new ManoJugador();
cantmano[1] = new ManoJugador();
cantmano[2] = new ManoJugador();
如果数组超出索引3,则有空值。这就是为什么当您尝试获取null的数字时,会得到NullPointerException

编辑

根据您的编辑:

是的,你肯定有一个空值。调试该部分,您将看到一些空值

提示:
System.out.println(java.util.Arrays.toString(someArray))


苏尔特

必须初始化数组及其元素。如果你只是有这个:

Carta manojugador[]= new Carta[10];
然后数组的所有10个元素都将
null
。您还必须初始化每个元素。大概是这样的:

for(int i=0, length=manojugador.length; i<length; i++) {
    manojugador[i] = new Carta();
}
这不应该是:

if (cantmano < 10) {
if(cantmano<10){
或者更好:

if (cantmano < manojugador.length) {
if(cantmano

我认为在您的代码中发生的导致
NullPointerException
的原因是
manojugador[9]
永远无法初始化。

您必须初始化数组及其元素。如果您有以下情况:

Carta manojugador[]= new Carta[10];
然后数组的所有10个元素都将
null
。您还必须初始化每个元素。如下所示:

for(int i=0, length=manojugador.length; i<length; i++) {
    manojugador[i] = new Carta();
}
这不应该是:

if (cantmano < 10) {
if(cantmano<10){
或者更好:

if (cantmano < manojugador.length) {
if(cantmano


我认为你的代码中发生的导致
NullPointerException
的原因是
manojugador[9]
永远无法初始化。

你能在问题行之前打印(manojugador[cantmano])的值吗?Que dice la linea 58 de blackjack.java?
com.pruebas.blackjack.blackjack.dibujar(blackjack.java:58)
请发布初始化
manojugador
数组的代码。我怀疑它没有被完全初始化。getNumero()做什么?它返回什么?@OscarRyz:OP已经指出
NullPointerException
一起抛出的是哪一行。//你能打印(manojugador[cantmano]的值吗在问题行之前?Que dice la linea 58 de blackjack.java?
com.pruebas.blackjack.blackjack.dibujar(blackjack.java:58)
请发布初始化
manojugador
数组的代码。我怀疑它没有被完全初始化。getNumero()是什么意思do?它返回什么?@OscarRyz:OP已经指示了
NullPointerException
//一起抛出的行,所以我必须通过cantmano[i]循环吗调用构造函数?否,您必须使用有效值填充数组,或者将数组修剪到正确的大小。我还建议您使用
列表来代替。其他(错误)选项是检查元素是否为空,但这只是隐藏底层问题的一种方法。在原始代码中发布。看起来你留下了空槽。可能是最后一个。@alfa64 Definitivamente tienes algunos nulls en tu arreglo,revisa esa sección de tu código.Saludos。那么我必须通过cantmano[i]循环吗调用构造函数?否,您必须使用有效值填充数组,或者将数组修剪到正确的大小。我还建议您使用
列表来代替。其他(错误)选项是检查元素是否为空,但这只是隐藏底层问题的一种方法。在原始代码中发布。似乎您留下了空槽。可能是最后一个。@alfa64 Definitivamente tienes algunos nulls en tu arreglo,revisa esa sección de tu código.Saludos.+1仅用于上面的对话。(我不打算无视你的回答)@OscarRyz:我也只是对你的答案投了高票。对话对我来说也很有趣。+1只是对上面的对话。(我不打算无视你的回答)@OscarRyz:我也只是对你的答案投了高票。对话对我来说也很有趣。