Так что я натолкнулся на этот кусок кода и стал новичком, я действительно не понял код. Мне было интересно, может ли кто-нибудь объяснить мне код. Благодаря!Код Объяснение: Enum and Rendering
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?
EDIT: Я также хотел бы, что <> и: называются так что я могу найти его в Интернете и прочитать о них. Ссылки тоже приветствуются :)
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();
}
Это состояние перечисления, которое используется для организации всех состояний в игре.
Благодарим за помощь и объяснения!
Дженерики предназначены для безопасности типов, которая обеспечивается компилятором. –
Да, в этом примере, принудительно, чтобы V был IRenderer, определенный тип будет удален в Runtime. – BlackJoker
IMO, конкретный тип здесь - «IRenderer», и это принято во время компиляции. В Java дженерики недоступны во время выполнения из-за стирания типа. –