Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:你能用一个变量进行向下转换吗?_Java_Variables_Derived Class_Downcast - Fatal编程技术网

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)