public class DealCard { /**
 * @param args
 */
public Map<Integer, String> CardTag = new HashMap<Integer, String>();
public Map<Integer, String> CardNumber =  new HashMap<Integer, String>();
//List<Card> card = new ArrayList<Card>();
public DealCard(){

CardTag = put(1, "Spade");
CardTag = put(2, "Heart");
CardTag = put(3, "Club");
CardTag = put(4, "Diamond");
System.out.println(CardTag.size());
}
}

解决方案 »

  1.   

    public class DealCard { /**
     * @param args
     */
    public Map<Integer, String> CardTag = new HashMap<Integer, String>();
    public Map<Integer, String> CardNumber =  new HashMap<Integer, String>();
    //List<Card> card = new ArrayList<Card>();
    public DealCard(){

    CardTag = put(1, "Spade");
    CardTag = put(2, "Heart");
    CardTag = put(3, "Club");
    CardTag = put(4, "Diamond");
    System.out.println(CardTag.size());//Exception in thread "main" java.lang.NullPointerException
                                               //at DealCard.<init>
    }
            public static void main(String[] args) {
    // TODO Auto-generated method stub
    DealCard deal = new DealCard();   
    }这句不明白 为什么异常了又?
      

  2.   

    CardTag = put(1, "Spade");
    CardTag = put(2, "Heart");
    CardTag = put(3, "Club");
    CardTag = put(4, "Diamond");
    为什么没有写成:
    CardTag.put(1, "Spade");
    CardTag.put(2, "Heart");
    CardTag.put(3, "Club");
    CardTag.put(4, "Diamond");
    就因为这个原因,你没有在CardTag对象中添加成功,所以程序报空指针异常
    在Java程序中,除了静态方法以外,其余的方法都是需要通过对象名点出的.