我有一个字符串告诉我要将对象转换为什么,有没有办法转换为该对象?
这是一些伪代码,定义了我想要做的事情
public TypeToCastTo Cast(T object, String TypeToCastTo) {
switch (TypeToCastTo) {
case "foo":
return (foo)T;
case "otherType":
return (otherType)T;
...
}
}
编辑
我想创建一个游戏,我可以单击一个按钮来购买一些东西,例如继承自 worldObject 的剑或盔甲。我想,因为我可能会返回一个武器或盔甲类(它们都继承自 worldObject),所以返回一个 worldObject 然后向下转换为正确的类(基于它的名称(字符串))是有意义的。
编辑2:正如评论中提到的,这是一个XY问题。我最初试图创建一个返回向下类型的函数,但实际上这没有意义,因为在其他地方使用它的情况下,我将需要一个 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
...
}
}
尽管有几个人提到我的想法可能是错误的,包括我标记为正确的答案(尽管我问了错误的问题,但它回答了我的问题),我真正理解这一点的原因是因为一个回复那个被删除了。
慕标琳琳
杨魅力
相关分类