дженерики с интерфейсами и валидаторами - PullRequest
0 голосов
/ 07 мая 2020

У меня есть:

Generic interface with method isValid (T obj).    
Driver class with parameters such as age, experience, license etc.  VaLidator for   
Driver Class which checks if Driver is Valid.

Итак, мне нужен валидатор для класса Driver.

public class Driver <T>{
    private String name;
    private String surname;
    private String secondname;
    private int dateofbirth;
    private T pass;
    private T dateofissue;

    public int getDateofbirth() {
        return dateofbirth;
    }

    public T getPass() {
        return pass;
    }

    public T getDateofissue() {
        return dateofissue;
    }



}
public interface Validator <T> {
    boolean isValid (T obj);
}
class DriverValidator<T> implements Validator {

Я не знаю, как мне это делать. За любые разъяснения буду очень благодарен

1 Ответ

0 голосов
/ 07 мая 2020

Как упоминалось в комментариях выше, в этом случае нелегко помочь, потому что тип проверки неизвестен, а также немного странно видеть, что тип generi c используется 2 раза разными геттерами. Также переменная dateOfBirth должна быть длинной, Date или LocalDate.

Но в любом случае вот пример реализации валидатора для объяснения технической концепции (конечно, вам нужно добавить больше проверок, но идея должна быть ясной):

public class DriverValidator<T> implements Validator<Driver<T>> {

    @Override
    public boolean isValid(Driver<T> driver) {
        if (driver==null) {
            return false;
        }
        if (driver.getPass() == null) {
            /* e.g. when this field may not be null...*/
            return false;
        }
        // ... do more checks - e.g. check old enough etc.
        return true;
    }

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