Type mismatch: cannot convert from HashMap<Integer,Item> to HashMap<Integer,Item>

Viewed 902

I am trying to use this piece of code in my JSP to loop over a Hashmap. When the jsp loads

    HashMap<Integer, Item> itemsMap = new HashMap<Integer, Item>();
    itemsMap = customer1.getItems();
      for(Map.Entry<Integer, Item> entry:itemsMap.entrySet()){
              Integer k=entry.getKey();
             Item item=entry.getValue();
      }

Here is the error that is displayed when I try to load the jsp

    org.apache.jasper.JasperException: Unable to compile class for JSP: 
    An error occurred at line: 159 in the jsp file: /JSP/cart.jsp
    Type mismatch: cannot convert from HashMap<Integer,Item> to HashMap<Integer,Item>
    156: //   HashMap itemsMap = customer1.getItems();
    157: //          for(Iterator i = itemsMap.keySet().iterator();i.hasNext();){
    158:      HashMap<Integer, Item> itemsMap = new HashMap<Integer, Item>();
    159:      itemsMap = customer1.getItems();
    160:           for(Map.Entry<Integer, Item> entry:itemsMap.entrySet()){
    161:                   Integer k=entry.getKey();
    162:                   Item item=entry.getValue();

The same code worked fine when I used it in a servlet for the same purpose. Can someone tell what is that I am doing wrong here? Thanks.

These are the related classes:

public class Customer {
    private String name;
    private String address;
    // private ArrayList<Item> items = new ArrayList<Item>();
    private HashMap<Integer,Item> items=new HashMap<Integer,Item>();
    public Customer() {

    }
    public HashMap<Integer,Item> getItems(){ return items;}
}

public static class Item {
    private String name;
    private String skew;
    private String amount;
    public Item(String name, String skew, String amount) {
        this.name=name; this.skew=skew; this.amount=amount;
    }
}
1 Answers
Related