所以我遇到了这段代码,作为一个初学者,我并没有真正理解代码。我想知道是否有人可以向我解释代码。谢谢!
private static final EnumMap<State, IRenderer> RENDERERS_MAP;
static {
RENDERERS_MAP= new EnumMap<State, IRenderer>(State.class);
for (State state : State.values()) {
RENDERERS_MAP.put(state, getRender());
}
}
我需要解释的主要是这段代码^代码,因为作为初学者,我从未使用过“<>”和“:”。另外我不确定 EnumMap 是什么。最好能详细解释这一点。什么是 IRenderer?
编辑: 我也想要什么 <> 和 : 被称为所以我可以在互联网上搜索并阅读它们。也欢迎链接:)
void render() {
Renderer currentRenderer = RENDERERS_MAP.get(currentState);
if (ren != null) {
currentRenderer.render();
}
}
这是我认为将代码呈现到屏幕上的一段代码。
public enum State {
START_MENU() {
@Override
public Renderer getRenderer() {
return new StartMenuRenderer();
}
},
PLAYER_ONE_MENU() {
@Override
public Renderer getRenderer() {
return new PlayerOneRenderer();
}
},
PLAYER_TWO_MENU() {
@Override
public Renderer getRenderer() {
return new PlayerTwoRenderer();
}
},
WIN_SCREEN() {
@Override
public Renderer getRenderer() {
return null; //TODO: implement body
}
},
LOSE_SCREEN() {
@Override
public Renderer getRenderer() {
return null; //TODO: implement body
}
},
PLAY_SCREEN() {
@Override
public Renderer getRenderer() {
return null; //TODO: implement body
}
};
public abstract Renderer getRenderer();
}
这是用于组织游戏中所有状态的枚举状态。
感谢您的所有帮助和解释!