草庐IT

ComparisonChain

全部标签

java - 我可以使用 Guava 的 ComparisonChain 以特殊方式处理 null 字段吗?

我有一个包含多个字段的ComplexObject,我想这样说:如果两者都存在字段x,则继续比较链中的下一个compare。如果两者都为空,则继续进行比较链中的下一个compare。如果一个为空而另一个不为空,则将空值放在最后我不知道该怎么做,因为据我所知.compare(c1.getX(),c2.getX(),Ordering.arbitrary().nullsLast())将如果对象都存在且相等,则认为它们相等如果两个对象都为空,则认为它们是相等的。有没有一种方法可以使用Guava的ComparisonChain或Ordering类来实现我想要的?或者有没有更好的方法来考虑解决这个问

java - 使用 ComparisonChain over Objects.equal() && Objects.equal() ... with Guava 有什么好处

我刚刚开始使用google的Guava集合(ComparisonChain和Objects)。在我的pojo中,我覆盖了equals方法,所以我首先这样做了:returnComparisonChain.start().compare(this.id,other.id).result()==0;然而,我后来意识到我也可以使用这个:returnObjects.equal(this.id,other.id);而且我看不出什么时候比较链会更好,因为您可以像这样轻松添加更多条件:returnObjects.equal(this.name,other.name)&&Objects.equal(th