我想获得的是可以安全地返回输入类实例的东西。在我的情况下被用作服务提供者。代码示例:
public class MyClass {
private Map<String, Object> mServices;
public MyClass() {
mServices = new HashMap<String, Object>();
mServices.put(XmlService.class.getName(), new XmlService());
}
public <E extends Object> E getService(Class<?> service) {
return (E) mServices.get(service.getName());
}
}
我承认我对参数化类型不是那么熟练,在这里我需要一些帮助。我没有从地图中获取对象吗?为什么我需要强制转换为 E,从而失去类型安全性?有没有办法避免强制转换和/或抑制警告?