【发布时间】:2016-09-18 08:07:26
【问题描述】:
如果我有几个派生类的方法与基类不同,但彼此相似,我可以使用变量向下转换吗?
例如:
Object derivedClass = baseClass.getChild().getClass();
((derivedClass)differentClassObj.differentClassMethod()).derivedClassMethod();
也许这太模糊和/或效率不高,因为我可以在基类中创建空方法来绕过这个问题(或其他我没有学过的技巧),但我仍然很好奇是否可以传递变量是否进入铸造。
感谢您的洞察!
编辑:为了进一步澄清任何混淆,我正在尝试确定是否可以使用变量进行转换。所以说我想将某些东西转换为字符串(只是为了论证):
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();
【问题讨论】:
-
我不确定您在问什么,但您可以使用 reflection 来确定是否有任何实例具有可见的
derivedClassMethod()和如果是,请调用它。
标签: java variables derived-class downcast