我想在輕型2D遊戲引擎中製作一些RessourceManager。我想有這樣的RessourceManager:使用對象使用對象參數調用具有泛型參數的方法
package com.Arsleust.DayumCorp.DayumEngine.Ressource;
import java.awt.Graphics2D;
import java.util.HashMap;
public class RessourceManager {
private HashMap<Class<?>, Renderer<?>> renderers;
public void registerRenderer(Class<?> objclass, Renderer<?> renderer) {
this.renderers.put(objclass, renderer);
}
public void render(Graphics2D g, Object object) {
Class<?> objclass = object.getClass();
if(this.renderers.get(objclass) != null) {
this.renderers.get(objclass).render(g, object);
}
}
}
:
package com.Arsleust.DayumCorp.DayumEngine.Ressource;
import java.awt.Graphics2D;
public abstract class Renderer<T> {
public abstract void init();
public abstract void render(Graphics2D g, T object);
}
但this.renderers.get(objclass).render(g, object);
,使一個錯誤,Eclipse詢問我創建一個新的方法或更改Renderer.render
方法的參數類型T
至Object
。
不知怎的,我要投給T
泛型類型的object
不知道它是什麼類型? 我就要真的很困惑,所以我要問你的幫助,以看得更清楚。
初始化renderes地圖第一 –
@ jw23首選移除一部分,因爲它是不是對你很重要,但不要擔心,我初始化我的增值經銷商) – Arsleust