我有一个界面:
public interface IValidator<E extends IEntity>
{
void validate(final E entity);
}
我想创建一个ValidatorService类,如下所示:
public class ValidatorService
{
private List<IValidator<IEntity>> validators;
public void validate(IEntity e)
{
for(IValidator<IEntity> validator : this.validators)
{
//if( instanceof )???
validator.validate(e);
}
}
}
如何确保验证器仅应用于相应的类(请参阅代码中的&#39; ????)?即:如果我们有EntityA类型的实体,那么只会调用验证器IValidator?我想我缺乏一些仿制药的知识..谢谢
答案 0 :(得分:4)
由于类型擦除,这是不可能的。
相反,您可以在界面中添加Class<E> getEntityClass()
方法。