Я работаю над небольшим приложением, где я пытаюсь разместить объект (Property
) в ArrayList<Property>
. В основном я создаю функцию поиска, которая работает на Map
того, что искать.Если заявление с неизвестным количеством условий
Например: Я хочу, чтобы найти все свойства с именем "12 Hello Lane"
, которые были перечислены в период между 2013 и 2015
Я бы тогда сделать вот так:
for (Property p : properties){
if (p.getName().equals("12 Hello Lane") && p.getListingDate().getYear() >=2013 && p.getListingDate().getYear() <= 2015){
//Add to list
}
}
Проблема в том, я пропусканием Map
свойств для сравнения, причем ключ является именем метода и значением, которое является желаемым значением. Другими словами:
Key: "getName"
Value: "12 Hello Lane"
Key: "getYear"
Value: 2013-2015
...
Мой вопрос, как я могу сделать это так, что я могу использовать один, если заявление, чтобы охватить все свойства? Что-то вроде:
for (Property p : properties){
if (p.getClass().getMethod(options.getKey()) == options.getValue()){
//Add to list
}
}
Я не знаю, если я правильно формулируя это, но я надеюсь, что вы, ребята, я клоню.
EDIT: Я пытаюсь добиться эффекта if a AND b AND c...
. Просто подумал, что я уточню, поскольку я вижу, что многие ответы дают нечто более похожее на OR
.
Спасибо. Я проверю это утром (чувствуя себя немного уставшим ...). Но похоже, что это сработает ... – Riccorbypro
@Riccorbypro Нет проблем! Нажмите на демонстрационную ссылку, вы сможете увидеть, что происходит, и если это то, что вы ищете. Доброй ночи! – dasblinkenlight
Это сработало! Спасибо. – Riccorbypro