У меня есть строка, которая сообщает мне, к чему я хочу привести мой объект. Есть ли способ привести к этому объекту?
Вот некоторый псевдокод, который определяет, что я хотел бы сделать
public TypeToCastTo Cast(T object, String TypeToCastTo) {
switch (TypeToCastTo) {
case "foo":
return (foo)T;
case "otherType":
return (otherType)T;
...
}
}
edit
Я хотел создать игру, в которой я могу нажать на кнопку, чтобы купить что-то, например, меч или доспехи, которые наследуются от worldObject. Я полагаю, что поскольку я могу возвращать класс оружия или доспехов (которые оба наследуют от worldObject), имеет смысл вернуть worldObject и затем уменьшить его до нужного класса (на основе его имени (String)).
edit 2: Как уже упоминалось в комментариях, это проблема XY. Первоначально я пытался создать функцию, которая возвращала бы тип downcast, но на самом деле это не имеет смысла, поскольку в случае его использования где-то еще мне понадобится оператор switch, чтобы определить, что делать с объектом в любом случае (в этот момент я могу разыграть) вместо того, чтобы иметь
public TypeToCastTo Cast(T object, String TypeToCastTo) {
switch (TypeToCastTo) {
case "foo":
return (foo)T;
...
}
}
И используя мою функцию для сотворения WorldObject, я могу получить
Method DoingSomethingWithWorldObject(WorldObject T) {
switch(T.typeToCastTo) {
case "foo":
foo temp = (foo)T;
// code using temp
case "other":
other temp = (other)T;
// code using temp
...
}
}
, хотя несколько человек упоминали, что, вероятно, это неправильното, как я думал об этом, включая ответ, который я пометил правильно (который ответил на мой вопрос, хотя я задавал неправильный вопрос), причина, по которой я действительно понял это, была из-за удаленного ответа.