Java:你能用一个变量进行向下转换吗?
如果我有几个派生类,它们的方法不同于基类,但彼此相似,我可以使用变量进行向下转换吗? 例如: 也许这太模糊和/或效率不高,因为我可以在基类中创建空方法来绕过这个问题(或其他我没有学会的技巧),但我仍然好奇是否可以将变量传递到强制转换中 谢谢你的洞察力 编辑:为了进一步澄清任何混淆,我正在尝试确定是否可以使用变量进行转换。所以,假设我想将某个东西转换为字符串(只是为了争论):Java:你能用一个变量进行向下转换吗?,java,variables,derived-class,downcast,Java,Variables,Derived Class,Downcast,如果我有几个派生类,它们的方法不同于基类,但彼此相似,我可以使用变量进行向下转换吗? 例如: 也许这太模糊和/或效率不高,因为我可以在基类中创建空方法来绕过这个问题(或其他我没有学会的技巧),但我仍然好奇是否可以将变量传递到强制转换中 谢谢你的洞察力 编辑:为了进一步澄清任何混淆,我正在尝试确定是否可以使用变量进行转换。所以,假设我想将某个东西转换为字符串(只是为了争论): 虽然可以使用类对象来指定将对象强制转换为什么类型,但它并不能真正帮助您: Class<? extends Paren
虽然可以使用类对象来指定将对象强制转换为什么类型,但它并不能真正帮助您:
Class<? extends ParentClass> derivedClass = baseClassObject.getChild().getClass();
// The following kind of does the cast you want, but not in a useful way:
derivedClass.cast(differentClassObject)
ClassI我不确定你在问什么,但你可以使用反射来确定是否有任何实例有可见的derivedClassMethod()
,如果有,就调用它。好吧,听起来好像它不会做我想做的事,但这主要是出于我个人的好奇心,所以我感谢你花时间解释它。你给了我一些其他的东西去研究和探索。谢谢D
String myObjStr = MyObject.class.getSimpleName();
// Then I want to know if I can cast objects using that variable in the casting
//(so far it doesn't appear to be working but I know that's because its a string.
//Is there some way I can manipulate it so that I CAN cast with it?)
((myObjStr).differentClassObj.differentClassMethod()).derivedClassMethod();
Class<? extends ParentClass> derivedClass = baseClassObject.getChild().getClass();
// The following kind of does the cast you want, but not in a useful way:
derivedClass.cast(differentClassObject)