java - 具有接口(interface)和 validator 的泛型

标签 java

我有:

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 类的 validator 。

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 {

我不知道该怎么做。对于任何解释将非常感激

最佳答案

正如上面评论中提到的,在这种情况下提供帮助并不容易,因为验证的类型是未知的,而且当看到泛型类型被不同的 getter 使用两次时,这也有点奇怪。此外,dateOfBirth 变量应该是一个 long、Date 或 LocalDate。

但无论如何,这里有一个 validator 实现的示例来解释技术概念(当然你必须添加更多检查,但想法应该很清楚):

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;
    }

}

关于java - 具有接口(interface)和 validator 的泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61664406/

相关文章:

java - 在特定位置添加 XML 数据

java - Hibernate:@OneToOne 未在数据库中生成 "one to one"关系

java - 在 Android 中将 AlertDialog Builder 限制为最多两行

java - 将 servlet 响应的响应传递回先前的 jsp 页面

java - RxAndroid 简化一个常见的模式?

java - 从 ReadOnly java.nio.ByteBuffer 中提取字符串

java - 如何从特定结构的txt文件中获取试题?

java - Dropwizard for Hibernate 中的 SQLite 方言

java - 如何将 JFrame 设置为 JDialog 的父级

java - @Bean 在类中使用@Configuration 和不使用它