我有:
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/