gpt4 book ai didi

java - Java List 的奇怪行为

转载 作者:行者123 更新时间:2023-12-02 06:17:03 27 4
gpt4 key购买 nike

我有这个要求,用千位分隔符显示金额。我有一个 POJO 类,其中包含我根据我的要求调用的两个方法

public Integer getTotalAmount() {
return totalAmount;
}

public String getTotalAmountWithSeparator() {
return String.format("%,d", totalAmount);
}

public void setTotalAmount(Integer totalAmount) {
this.totalAmount = totalAmount;
}

现在,当我在另一个类似这样的类中使用此方法getTotalAmountWithSeparator()时,我会执行一个 println 来查看金额是否正确显示(确实如此)。

List<SupplierOrderDetails> list = SupplierOrderDetailBussinessLogic.getInstance().getSupplierOrderDetailsFromsupplierOrder(supplierOrder);

DataProviderBuilder dpb = new DataProviderBuilder();

// add heading data
dpb.add("so", supplierOrder.getSupplierOrderNo());
dpb.add("sn", supplierOrder.getSupplier().getPerName());
dpb.add("sec", supplierOrder.getSection().getAlternateName());
dpb.add("od", supplierOrder.getSupplierOrderCreated().toString());

// add table data
dpb.addJavaObject(list, "data");

这里是实际的方法getSupplierOrderDetailsFromsupplierOrder(supplierOrder);,它从数据库获取数据。

@SuppressWarnings("unchecked")
public List<SupplierOrderDetails> getSupplierOrderDetailsFromsupplierOrder(SupplierOrder supplierOrderDetails){
Session hibernateSession = HibernateUtills.getInstance().getHibernateSession();
Criteria criteria = hibernateSession.createCriteria(SupplierOrderDetails.class);
criteria.add(Restrictions.eq("supplierOrderID", supplierOrderDetails));
List<SupplierOrderDetails> models = criteria.list();

System.out.println(" models.size() " + models.size());

for (int i = 0; i < models.size(); i++)
{
if (models.get(i).getId() != null)
{
models.get(i).getProductID().getProductCode();
models.get(i).getProductID().getBrandName();
models.get(i).getPurchasePrice();
models.get(i).getOrderQty();
models.get(i).getTotalAmountWithSeparator();
System.out.println(models.get(i).getProductID().getBrandName() + " TotalAmount " + models.get(i).getTotalAmountWithSeparator());

}
// System.out.println(models.get(i).getPurchasePrice());
}
return models;
}

但是当我在这里打印列表数据时,它没有显示金额中的分隔符为什么??????我做错了什么

dp = getSupplierOrderData(Long.parseLong(supplierOrderId));
System.out.println("DATA "+dp.getString("data"));

最佳答案

因为 dp.toString() 方法使用 getTotalAmount() 而不是 getTotalAmountWithSeparator()

关于java - Java List 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21359986/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com