任何人都可以告诉我为什么看跌期权给我一个错误?
static HashMap<Class, ? extends BaseSystem> systems;
public <T extends BaseSystem> EntityManager()//constructor
{
systems=new HashMap<Class, T>();
}
public static <T extends BaseSystem> void addSystem(Class c, T system)//store a system for later reference
{
systems.put(c, system);
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*rey 15
最可能的问题是第一种方法中的T和第二种方法中的T不是自动认为相同的.在其他工作中,您有两种不同的类型,它们都扩展了BaseSystem但可能不相关.
您需要在类上定义一次并使用它一致或只使用BaseSystem而不使用泛型.
顺便说一句:在更基础的层面上,不要混淆静态初始化和实例初始化.如果要在构造函数中设置静态字段,则会出现设计问题.
这个类和T系统之间有什么关系吗?