我正在学习通用语言,并在某个时候感到震惊。这是我的课程

public class MyValidator{

    private Class providerClass;

    public MyValidator(Container container){
       setProviderClass(container.getInstanc(ValidationProvider.class),"my.providerClass");
   }

    public void setProviderClass(Class<? extends ValidationProvider> providerClass)
    {
        this.providerClass = providerClass;
    }

}


容器的签名是

 <T> T getInstance(Class<T> type, String name)
Gets an instance of the given dependency which was declared in ContainerBuilder.


容器是我正在使用的平台的内置DI机制,但是当我从构造函数内部调用setter方法时,我正在跟随Eclipse中的异常


类型为MyValidator的方法setProviderClass(Class)不适用于参数(ValidationProvider)


我知道我没有正确遵守合同,但不确定如何执行此操作。我的意图是在运行时设置类,它应该接受所有隐含的,隐含ValidationProvider的接口。

最佳答案

getInstance(Class type,String name)返回T不是Class-> ValidationProvider的实例不是类对象。

这就是异常消息的意思:您需要一个Class对象,但是要传递ValidationProvider对象。

10-04 23:26