使用Java 8以工厂模式输入类型不匹配

时间:2019-07-19 17:05:24

标签: java generics java-8 factory-pattern

当我尝试编码工厂模式时,我遇到类型不匹配的编译器错误。接下来是涉及的代码。

首先,我有一个通用接口Validator.java与我的任何BusinessEntities一起使用(它们都实现了BusinessEntity.java接口):

public interface Validator<T extends BusinessEntity> {
    boolean validate(T entity);
}

第二,我对实现User.java的名为UserValidator.java的{​​{1}}实体有一个具体的验证器。

Validator.java

最后,我有一个工厂public class UserValidator implements Validator<User> { @Override public boolean validate(User entity) { //logic to return a boolean value } } ,能够使用类或其他条件返回验证器。

ValidatorFactory.java

错误是:public class ValidatorFactory<T extends Validator<? extends BusinessEntity>> { private ValidatorFactory() { super(); } //Simplified method public T getValidator() { return new UserValidator(); //this lines raises the error } }

我在做什么错?在这种情况下,制作工厂模式的最佳策略是什么?

**编辑**

实际上这是重复的,但另一个问题不能回答我的第二点。在这种情况下,制作工厂模式的最佳策略是什么?

0 个答案:

没有答案