这段代码运行后,为什么会出现一个null值呢?

来源:7-1 简易扑克牌游戏

昵称是JaVa

2017-01-08 02:28

package temp;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class CreatGamers {
	Map gamers;
	List cards;
	CreatGamers(){
		gamers=new HashMap();
		cards=new ArrayList();
	}
	Scanner in=new Scanner(System.in);
	public void Gamers(){
		for(int i=0;i<=1;i++){
			System.out.println("请输入第"+(i+1)+"个玩家ID和姓名");
			System.out.println("输入玩家ID");
			int ID=in.nextInt();
			System.out.println("输入玩家姓名");
			String name=in.next();
			gamers.put(ID, name);
		}
		for(int i=0;i<=1;i++){
		System.out.println("欢迎玩家"+gamers.get(i));
	}
	}
	
}

主函数://调用上面的类方法运行程序

package temp;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CreatGamers a=new CreatGamers();
		a. Gamers();
	}

}


写回答 关注

2回答

  • qq_上弦上洛上缘_0
    2017-01-08 20:06:23

    public void TestKeySet(){

    Set<String> keyset=students.keySet();

    for (String string : keyset) {

    Student st=students.get(string);

    if(st!=null){

    System.out.println("学生:"+st.getName());

    }

    }

    }

    那就用这个来输出吧。

  • qq_上弦上洛上缘_0
    2017-01-08 19:55:46

      System.out.println("欢迎玩家"+gamers.get(i));变成以下:
      System.out.println("欢迎玩家"+gamers.get(i)name);
    原因是:上面是获取集成员,下面是获取集里面成员具体的属性。

    昵称是JaV... 回复qq_上弦上...

    不行啊,gamers.get(i)是个空值,这样会报空指针异常的。

    2017-01-08 20:00:45

    共 2 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题