- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Joiners 类来创建约束。 Joiners 类有 equal()、greaterThan()、lessThanOrEqual() 等方法。我想使用“notEqual()”等方法,因为我想比较同一类的两个对象,如果属性(property)的值(value)是不一样的。请注意,我使用 Joiners.lessThan(..id..) 来确保我比较对象对而无需执行两次。这是我希望能够编写的代码示例:
private Constraint someConflict(ConstraintFactory cf) {
return cf.from(A.class)
.join(A.class, // Pair the above A with this A
Joiners.notEqual(A::getSomething), // ..if they have differing Something
Joiners.lessThan(A::getId)) // ..and if the pair is unique (no reverse pairs)
.penalizeConfigurable();
}
“notEqual”显然会失败,因为它不存在。有没有办法做到这一点?这种操作应该是可能的,这似乎是合乎逻辑的。如果没有,我可以开悟吗?提前致谢。
最佳答案
好问题!
Joiners
方法 equal()
、greaterThan()
、lessThanOrEqual()
等使用索引(=哈希表)。这意味着它们对于大型数据集比没有这样的索引要快得多。请参阅下面的 2 张图片。 (这独立于评分的“增量”方面。)
我们还不确定为 notEquals()
使用索引是否是个好主意。同时,我们要保证所有 Joiners 方法都使用索引,过滤
除外。所以如果它没有被索引,就没有 notEquals(Bar::getFoo)
。现在 filtering((a, b) -> !a.getFoo().equals(b.getFoo()))
有效。也许我们应该添加 notEqualsFiltering(Bar::getFoo)
作为语法糖?
关于optaplanner - 为什么 Joiners 类中没有 'notEqual' 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66694899/
我正在使用 Joiners 类来创建约束。 Joiners 类有 equal()、greaterThan()、lessThanOrEqual() 等方法。我想使用“notEqual()”等方法,因为我
在 Ramda 中,我可以执行如下操作(这只是假设的代码,仅用于说明我正在搜索的解决方案类型) const highest = function(attribute) { switch(attri
我正在使用: jQuery.validator.addMethod("notEqual", function(value, element, param) { return t
我有几个下拉菜单(类名为month_dropdown),并且下拉菜单的数量不是恒定的。我怎样才能为它们实现 NotEqual 验证。我正在使用 jQuery 验证插件。 这就是我写的 - jQuery
我正在尝试像这样过滤一些元素: model = model.Where(feature => item .Input .Contains(feature
我正在尝试使用 Meteor 应用程序从 mongodb 数据库中获取文档(使用 Meteor 的集合),但我只想要其中不存在特定注释字段的文档。 我尝试过: Documents.findOne({i
我是一名优秀的程序员,十分优秀!