我正在尝试创建一个服务容器,并想知道如何反映调用该方法时使用的类型.见下文:
public class ServiceContainer {
HashMap services;
public ServiceContainer() {
services = new HashMap();
}
public void addService(Type t, T object) {
services.put(t, object);
}
public void addService(T object) {
Type type = typeof(T);
services.put(type, object);
}
}
我更喜欢使用第二个addService,但如果这不可能,那就是可以依赖的东西了.
编辑:我想我找到了addService的解决方案,但是现在有另一种方法无法用同样的方法解决:
public class ServiceContainer {
HashMap services;
public ServiceContainer() {
services = new HashMap();
}
public void addObject(T object) {
Class type = object.getClass();
services.put(type, object);
}
public boolean containsService() {
}
public T getService() {
services.get(
ServiceContainer.class.getMethod( "getService", null )
.getGenericParameterTypes()[0] );
}
}
我现在有点在黑暗中射击,我应该去看一些文件……