是否可以在不使用groupBy()的情况下使用约束流收集器(或类似的东西)?

问题描述 投票:0回答:1

我正在尝试基于一个实体的所有实例的字段总和对约束进行建模,但收集器与 groupBy() 协同工作。我不需要分组,只需要所有实例的运算符。比如:

constraintFactory
    .forEach(MeaningOfLife.class)
    .sum(MeaningOfLife::getValue) // obviously doesn't work
    .penalize(HardSoftScore.ONE_SOFT, totalMeaning -> totalMeaning != 42)
    .asConstraint("Meaning of life is always 42");

我可能错误地建模了,我现在已经使用 EasyScoreCalculator 解决了这个问题,但我想将逻辑移至首选约束流方法。

optaplanner
1个回答
0
投票

从技术上来说,该问题的正确答案是“否”。 但实际上,这有点像“是”:

constraintFactory.forEach(MeaningOfLife.class)
    .groupBy(sum(MeaningOfLife::getValue))
    .penalize(HardSoftScore.ONE_SOFT, totalMeaning -> totalMeaning != 42)
    .asConstraint("Meaning of life is always 42");
© www.soinside.com 2019 - 2024. All rights reserved.