我正在用 Java 从头开始编写一个交互式小说游戏。我目前将我所有的游戏对象引用存储在一个名为 ObjectManager 的单例中的 HashMap 中。 ObjectManager 有一个名为 get 的函数,它接受一个整数 ID 并返回适当的引用。问题是当我需要返回具有更多功能的 BaseObject 的子类时,它返回一个 BaseObject。
到目前为止,我所做的是添加了一个返回 BaseEntity(BaseObject 的子类)的 getEntity 函数。但是,当我需要函数返回一个对象,该对象是添加了所需功能的 BaseEntity 的子类时,我将需要创建另一个函数。我知道有更好的方法,但我不知道它是什么。我对设计模式知之甚少,我不确定在这里使用哪一个。我尝试将“类”作为参数传递,但这并没有让我得到任何结果。
public BaseObject get(int ID){
return (BaseObject)refMap.get(ID);
}
public BaseEntity getEntity(int ID){
return (BaseEntity)refMap.get(ID);
}
谢谢,Java 忍者!
最佳答案
如果您有 Java 5 运行时,请使用通用返回类型:
public <Entity extends BaseEntity> Entity getEntity(int ID){
return (Entity)refMap.get(ID);
}
关于java - 如何让 java 单例对象管理器返回任何类型的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844989/