我有一个用于根据对象的多个属性过滤一组对象的用例。我将在 Javascript 中使用的一种方法可能是创建一个仅包含我关心的属性的对象,然后根据我希望过滤的对象检查这些属性名称。
示例(在打字稿中):
example(): void {
let template = {
name: 'Test',
color: 'Blue'
};
let objects = [
{ name: 'Test', color: 'Blue' },
{ name: 'Test2', color: 'Blue' },
{ name: 'Test', color: 'Red' },
{ name: 'Test', color: 'Blue', extra: true },
];
let results = objects.map(o => this.compare(o, template));
console.log(results);
}
compare(obj, template): boolean {
for (const prop in template) {
if (obj[prop] !== template[prop]) {
return false;
}
}
return true;
}
以上将写入[true, false, false, true]
控制台。这很酷的原因是它基本上可以接受任何对象并发出正确的结果。如何在 Java 中提供此功能对我来说并不明显,这样我就可以避免在数百个数据模型 bean 上实现比较功能。
是否有一种内置或常用的方法可以以通用方式在 Java 中进行等效比较?