【发布时间】:2017-10-18 15:01:40
【问题描述】:
我正在尝试在我的 JSP 中使用这段代码来循环遍历 Hashmap。当jsp加载时
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();
}
这是我尝试加载 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();
当我在 servlet 中出于相同目的使用相同的代码时,它运行良好。 有人能告诉我我在这里做错了什么吗?谢谢。
这些是相关的类:
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;
}
}
【问题讨论】:
-
确保您的
Item类已导入 JSP 并且它是正确的Item类。 -
您可以在您的帖子上更新什么 customer1.getitems 签名
-
@gatisahu 这里是相关类的一些相关信息
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 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; }}
标签: java jsp generics hashmap type-mismatch