我想知道是否有一种好方法可以在对象上设置 Set,但仅限于自定义字段。
例如,我需要一组 POJO:
class MyPojo {
private String name;
private Map<Object, Object> stuff;
//getters, setters, constructor
}
我想要一个Set
,其中它们的名称是唯一的。
我可以根据 name
属性实现 hash
和 equals
,但是我无法使用真正的 equals
进行比较他们。
是否有一些不错的解决方法或者可能是 Guava/apache commons 集合?
最佳答案
您可以创建包装对象。这就像装饰器模式。您使用不同的哈希实现来包装原始对象,然后包装的对象将在 Set 中使用。
关于java.util.Set,但对字段有自定义约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28603777/