BeanUtils filter Set 基于object 属性 和value compare
BeanUtils filter Set based on object property and value compare
我有一组对象,我事先不知道其确切类型。假设 Set 有 4 个对象 A、B、C 和 D。
class A{
id = "test";
order = "ship";
getId();
getOrder();
},
class B {
id = "fail";
order = "ship";
getId();
getOrder();
},class C {
id = "fail";
order = "ship";
getId();
getOrder();
},class D {
id = "test";
order = "ship";
getId();
getOrder();
},
我有一个 属性 对象数组,其中 属性 看起来像这样:
class Property {
propName : "id"; //Will never be null.
propValueMatch : "test";
},
class Property {
propName : "order"; //Will never be null.
propValueMatch : null;
}
我需要遍历集合,将 属性 数组逻辑应用于集合中的每个对象和 return 符合条件的对象。它会像这样:
Check if the Object in Set has a readable property by the name : Property.propName. If TRUE {
if Property.propValueMatch is not null : Check if that property value of the Object has the same value as defined in Property.propValueMatch. Then the object passess the criteria and should be returned.
if Property.propValueMatch is null : Then the object passess the criteria and should be returned
}
一个问题是 属性 可能存在于我们正在迭代的对象内的对象变量中。
我开始实施这个,但我确信有更简洁的方法使用 BeanUtils、属性Utils、Comaparator 等来做到这一点。
最终使用 apache commons Predicate 创建条件来过滤集合,然后使用 BeanWrapper 填充我的特定字段
我有一组对象,我事先不知道其确切类型。假设 Set 有 4 个对象 A、B、C 和 D。
class A{
id = "test";
order = "ship";
getId();
getOrder();
},
class B {
id = "fail";
order = "ship";
getId();
getOrder();
},class C {
id = "fail";
order = "ship";
getId();
getOrder();
},class D {
id = "test";
order = "ship";
getId();
getOrder();
},
我有一个 属性 对象数组,其中 属性 看起来像这样:
class Property {
propName : "id"; //Will never be null.
propValueMatch : "test";
},
class Property {
propName : "order"; //Will never be null.
propValueMatch : null;
}
我需要遍历集合,将 属性 数组逻辑应用于集合中的每个对象和 return 符合条件的对象。它会像这样:
Check if the Object in Set has a readable property by the name : Property.propName. If TRUE {
if Property.propValueMatch is not null : Check if that property value of the Object has the same value as defined in Property.propValueMatch. Then the object passess the criteria and should be returned.
if Property.propValueMatch is null : Then the object passess the criteria and should be returned
}
一个问题是 属性 可能存在于我们正在迭代的对象内的对象变量中。
我开始实施这个,但我确信有更简洁的方法使用 BeanUtils、属性Utils、Comaparator 等来做到这一点。
最终使用 apache commons Predicate 创建条件来过滤集合,然后使用 BeanWrapper 填充我的特定字段