0

我有一个界面:

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

如何确保验证器仅应用于其相应的类(请参见代码中的“???”)?即:如果我们有EntityA类型的实体,那么只有验证器IValidator会被调用?我想我缺乏一些泛型知识..谢谢

4

1 回答 1

4

由于类型擦除,这是不可能的。

相反,您可以Class<E> getEntityClass()向接口添加方法。

于 2013-10-10T14:06:56.350 回答