Я бы смоделировал это как метод, который возвращает true
, когда все ключи присутствуют и действительны, и false
в противном случае.Я бы обозначил требуемые ключи как Collection<String>
, чтобы можно было легко перебирать их.
Collection<String> keys = Arrays.asList("key1", "key2");
Затем я бы повторил цикл и проверил, что каждый ключ присутствует и действителен:
public static boolean isValidMap(Map<String, Object> map, Collection<String> keys) {
for (String key : keys) {
Object value = map.get(key);
if (isInvalid(value)) {
return false;
}
}
return true;
}
Последняя часть определяет, является ли данный объект недействительным:
public static boolean isInvalid(Object o) {
if (o == null) {
return true;
}
if (o instanceof Collection) {
return ((Collection) o).isEmpty();
}
return true;
}
Конечно, вы можете настроить метод isInvalid()
для любого поведения, которое вам требуется.