我正在尝试使用以下行创建LineItem
金额列表的绑定:
ReadOnlyObjectWrapper<BigDecimal> total = new ReadOnlyObjectWrapper<>();
total.bind(Bindings.createObjectBinding(() -> items.stream()
.collect(Collectors.summingDouble(LineItem::getTotal)),
items));
显然,Collectors.summingDouble
不能工作,因为它是BigDecimal
。有什么方法可以用BigDecimal做到这一点吗?
LineItem.java
public class LineItem
{
private final SimpleObjectProperty<BigDecimal> amount;
public LineItem()
{
this.amount = new SimpleObjectProperty<>();
}
public BigDecimal getTotal()
{
return this.amount.get();
}
}
理想情况下,对属性的更改将反映在总属性中...
要使此功能正常工作,需要进行一些更改:
这看起来像这样:
public class LineItem {
private final SimpleObjectProperty<BigDecimal> amount;
public LineItem()
{
this.amount = new SimpleObjectProperty<>();
}
public final BigDecimal getTotal()
{
return this.amount.get();
}
public ObjectProperty<BigDecimal> totalProperty() {
return amount ;
}
public final void setTotal(BigDecimal total) {
totalProperty().set(total);
}
}
然后
ObservableList<LineItem> items = FXCollections.observableArrayList(
item -> new Observable[] {item.totalProperty()}
);
和
total.bind(Bindings.createObjectBinding(() -> items.stream()
.map(LineItem::getTotal)
.reduce(BigDecimal.ZERO, BigDecimal::add),
items));
问题内容: 我如何用对象填充ArrayList,而内部的每个对象都不相同? 问题答案:
问题内容: 如何在Python中创建对象(类实例)列表? 还是这是不良设计的结果?我需要这个原因是因为我有不同的对象,并且需要在以后的阶段中处理它们,所以我将继续将它们添加到列表中,然后再调用它们。 问题答案: 存储对象实例列表非常简单
问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正
问题内容: 我有一个JavaScript对象,例如 如何获取此对象中键的长度和列表? 问题答案: var obj = {
我试图实现一个使用Spring Boot的客户机,它将从一个站点获取所有产品并将它们存储在数据库中。储存部分已经处理好了,但我很难找到所有产品的清单。当用Postman测试时,我可以用这样的身体得到响应:
我正在使用Guice开发一个小型web框架。我有一个Router对象,一旦初始化,它就会公开一个getControllerClasses()方法。我必须循环所有这些动态返回的类,以使用Guice绑定它们。 我绑定路由器: 但是,我如何在一个模块中获得绑定的路由器实例,以便也可以绑定其getControllerClasses()方法返回的类? 我能够在模块中获取路由器实例的唯一方法是,将该实例绑定到