У меня есть набор объектов, точный тип которых я не знаю заранее. Предположим, что в наборе есть 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();
},
У меня есть массив объектов Property, где Property выглядит следующим образом:
class Property {
propName : "id"; //Will never be null.
propValueMatch : "test";
},
class Property {
propName : "order"; //Will never be null.
propValueMatch : null;
}
I нужно перебрать набор, применить массив свойств logi c к каждому объекту в наборе и вернуть соответствующий объект. Это будет go примерно так:
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, PropertyUtils, Comaparator et c.