【发布时间】:2015-10-11 09:23:28
【问题描述】:
public Set<Product> getProductsBypriceFilter(Map<String, BigDecimal> filterParams) {
Set<Product> productsByPrice = new HashSet<>();
Set<String> criterias = filterParams.keySet();
if (criterias.contains("low")) {
for (Product product : listOfProducts) {
if (product.getUnitPrice().compareTo(filterParams.get("low"))>=0 ) {
productsByPrice.add(product);
}
}
}
return productsByPrice ;
}
我想将产品价格与Map 的“低价”价格进行比较,但出现错误
java.util.LinkedList 不能转换为 java.math.BigDecimal
filterParams.get("low") 是一个值的linkedlist 吗?我无法像 List 一样访问它。
【问题讨论】:
-
product.getUnitPrice() 的定义是什么?
-
public BigDecimal getUnitPrice() { return unitPrice; }
-
是您的 'compareTo' 行引发了该错误吗?
-
打印
filterParams的值时的o/p是什么。 -
我可以在没有它的情况下正常运行 System.out.println(">>>"+filterParams.get("low")) 我得到输出例如 >>>[400]
标签: java spring dictionary get bigdecimal