그래서이 코드 조각을 보았고 초보자 였기 때문에 코드를 실제로 이해하지 못했습니다. 누군가 코드를 설명 할 수 있는지 궁금합니다. 감사! ":"코드 설명 : 열거 형 및 렌더링
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();
}
이것은 게임의 모든 상태를 구성하는 데 사용되는 enum 상태입니다.
모든 도움과 설명에 감사드립니다.
Generics는 컴파일러에서 적용되는 유형 안전을위한 것입니다. –
예,이 예에서는 V가 IRenderer가되도록 강제 실행됩니다. 특정 유형은 런타임에 소멸됩니다. – BlackJoker
IMO, 특정 유형은 'IRenderer'이며 컴파일시 결정됩니다. Java에서는 유형 지우기로 인해 런타임에 제네릭을 사용할 수 없습니다. –