我有一次不知道如何继续前进。我有一个带有以下代码的课程
public class MyClass{
private Class<? extends ValidationProvider> providerClass;
//getter ans setter
}
Provider 类是在运行时传递的,并且可以有不同的实现,它只需要遵循上述合同? extends ValidationProvider
。
在我的实现中,我提供了一个属性,用户可以在其中传递提供者名称类,并基于此我需要继续前进。为了继续前进,我需要使用内置的依赖注入机制来获取提供者类的实例,例如
public class MyClass{
private Class<? extends ValidationProvider> providerClass;
//getter ans setter
public void setProvider(){
providerClass=container.getInstance("type","name");
}
}
的签名container.getInstance("type","name");
是
<T> T getInstance(Class<T> type, String name);
我不确定如何将类型传递给容器并获取提供者类的实例(因为提供者类具有签名<? extends ValidationProvider>
)。
对于简单的用例,我可以这样做
container.getInstance(String.class,"my constant");
但不确定如何为我的用例做这件事在这方面的任何帮助将不胜感激。