我有一个名为Data的抽象类,其中有一个getInstance()方法,它应该返回Data具体子类的实例。
我想将一个字符串传递给getInstance方法,这个字符串将定义返回哪个类。
目前为止我有:
public abstract class Data {
private Map<String, Data> instances;
public <T extends Data> T getInstance(Class<T> type, String dataName) {
return type.cast(instances.get(dataName));
}
}
getInstance()方法将在instances
映射中查找正确的实例。我认为只要该映射由Spring填充,这应该是可以的,但调用者必须将Class<T> type
参数与String dataName
参数匹配。
是否有任何方法可以删除Class<T> type
参数并且不会出现泛型警告?