Я новичок в дженериках в Java.
Мне нужно сохранить различные экземпляры generi c class GameRule<T>
со значениями типа T
в коллекцию для последующего массового использования в методе с подписью:
public <T> void applyGameRule(GameRule<T>, T value)
Как я могу это сделать?
Я пробовал сделать такую оболочку:
public class GameRuleHolder {
private Object gameRule;
private String gameRuleType;
private Object value;
private String valueType;
public <T> GameRuleHolder(GameRule<T> gameRule, T value) {
this.gameRule = gameRule;
this.gameRuleType = gameRule.getClass().getName();
this.value = value;
this.valueType = value.getClass().getName();
}
// getters, setters ...
Я сохранил GameRules в этой оболочке и сохранил их в Set.
, но когда я пытаюсь вызвать необходимый метод, например:
setGameRule(Class.forName(gameRule.getGameRuleType()).cast(gameRule.getGameRule()), Class.forName(gameRule.getValueType()).cast(gameRule.getValue()));
, я получаю эту ошибку в IDE: