【问题标题】:Java Map String BigDecimal get functionJava Map String BigDecimal 获取函数
【发布时间】: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


【解决方案1】:

您的 product.getUnitPrice() 方法似乎返回 LinkedList 对象而不是 BigDecimal 对象。由于您没有提供Product.getUnitPrice() 的代码,因此很难再为您提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2023-02-24
    • 2012-12-25
    相关资源
    最近更新 更多