私が取得したいのは、入力クラスのインスタンスを安全に返すことができるものです。私の場合、サービスプロバイダーとして使用されています。コードサンプル:
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にキャストする必要があるのですか?警告のキャストや抑制を回避する方法はありますか?