Как элегантно сделать проверку для случая, когда все поля в объекте равны нулю? - PullRequest
0 голосов
/ 16 июня 2011

Я хочу выдать исключение, если все поля в объекте равны NULL, но традиционный способ проверки на NULL выглядит не очень умным.Что может быть еще один способ сделать это?

Ответы [ 3 ]

1 голос
/ 16 июня 2011

РЕДАКТИРОВАТЬ: Это использует отражение (java.lang.reflect.Field)

Вы можете создать метод внутри этого объекта, чтобы вернуть его действительное состояние:

public boolean isValid() {
    boolean isValid = true;

    for (int i = 0; isValid && i < this.getClass().getFields().length; ++i) {
        if (this.getClass().getFields()[i].equals(null)) {
            isValid = false;
        }
    }

    return isValid;
}

Таким образом, метод будет проверять каждое поле класса, поэтому вам не нужно изменять код всякий раз, когда вы добавляете в него новое поле.

ОДНАКО, первичный ключ не может быть нулевым, поэтому вам НЕ нужно проверять это поле или любое поле NOTNULL по этому вопросу.

if (!field.getName().equals("aPrimaryKey_OR_aNotNullField")) {

}
1 голос
/ 16 июня 2011

Попробуйте это:

if (a == null && b == null && c == null) 
    throw new AllFieldsAreNullException();
0 голосов
/ 16 июня 2011

Вы могли бы потенциально использовать отражение , чтобы написать универсальный метод для анализа полей объекта, но это не кажется самым ясным способом выполнения проверки. Для ясности, возможно, я буду откровенен.

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