下面的代码这一行 “handCards.add(hC);” 出现空指针异常。

package kuailedoudizhu;


import java.util.ArrayList;

import java.util.Scanner;


/**

 * 快乐比大小的玩家类

 * Meng7y

 * 2017年10月6日 19:21:43

 */

public class Player {

String name = null;

ArrayList<String> handCards = null;

String maxHC = null;

int count = 0;

public void setName() {

System.out.println("欢迎您进入快乐比大小,请输入您的游戏昵称:");

Scanner info = new Scanner(System.in);

name = info.next();

}

public void contrast() {

for(int i = 0; i < 3; i++) {

int a = (int)(Math.random()*51);

System.out.println(a);

if(count < a) {

count = a;

}

String hC = Card.deck.get(a);

handCards.add(hC);

}

maxHC = Card.deck.get(count);

}

}


Meng7y
浏览 2351回答 4
4回答

Developer_Zuck

我刚刚看了,并且运行了一下,问题在Player里面,你将第三行代码改改就可以了,估计你一看就明白了。public class Player { String name = null; ArrayList<String> handCards = new ArrayList<String>();//改动的地方

onemoo

因为 handCards 一直是空指针啊!handCards 的初值是 null,你一直没给它赋予适当的对象,随后就在 contrast() 里调用 handCards.add,当然会出错。

Developer_Zuck

这里有一个问题,当i取值0的时候会出现什么问题?你上面刚刚是i也就是0紧接着你就打印的是1这二者不是矛盾的吗?输出语句也应该是i,保持同步。

Its_forever

handPs1.add(handPs.get(i));handPs集合里面还没有值,取的时候报错了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java