Как проверить, что список был инициализирован с 0 элементами в нем? - PullRequest
0 голосов
/ 17 января 2019

Например:

public List<Integer> list = new ArrayList<>();

и как я могу проверить через отражение, что этот список пуст и не нулевой?

for (final Field field : ReflectionUtils.getDeclaredFields(clazz)) {
    if (List.class.isAssignableFrom(field.getType())) {
        // TODO check whether the list is empty.
    }
}

Ответы [ 3 ]

0 голосов
/ 17 января 2019

В интерфейсе List есть метод с именем isEmpty(). Вы можете использовать этот метод в вашем условии if, как показано ниже.

 if  (list==null||list.isEmpty) {
    //TODO if the list is empty
 }
0 голосов
/ 17 января 2019

Вы можете использовать следующее, чтобы проверить погоду: оно пустое и пустое.

public boolean isEmpty() {
    Field fields[] = this.getClass().getDeclaredFields();
    for (Field field : fields) {
        try {
            Object value = field.get(this);
            if (value != null) {
                return false;
            }
        }
        catch (IllegalArgumentException e) {        
            e.printStackTrace();
        }
        catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
    return true;
}
0 голосов
/ 17 января 2019

Вы можете использовать Field.get(), чтобы получить значение поля и затем привести его к List:

List<?> l = (List<?>) Field.get(obj);
if (l == null || l.isEmpty()) {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...