Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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_Spring_Oop - Fatal编程技术网

Java 如何强制转换为指定的类类型?

Java 如何强制转换为指定的类类型?,java,spring,oop,Java,Spring,Oop,可能重复: 我有一个关于java编程的问题。我希望能够通过传递给函数的字符串参数来选择转换类型。正如您所看到的,有一个主类必须转换为子类型。这些子类型应由用户指定。我们如何做到这一点 public void casting(String subClassCast) { MainClass mainClass = (subClassCast) MainClassFactory.get(); } 你可以做: MainClass mainClass = Class.forName(

可能重复:

我有一个关于java编程的问题。我希望能够通过传递给函数的字符串参数来选择转换类型。正如您所看到的,有一个主类必须转换为子类型。这些子类型应由用户指定。我们如何做到这一点

public void casting(String subClassCast)
 {
      MainClass mainClass = (subClassCast) MainClassFactory.get();
 }
你可以做:

MainClass mainClass = Class.forName(subClassCast).cast(MainClassFactory.get());

但我不确定这是不是一个好主意。

你写这部电影的时候演员们什么都没做

cast用于将超类的对象分配给子类引用

Object obj = a.toString();
String str = (String) obj;  // The compiler can't check that at runtime obj will be
                            // a String, so the programmer "forces" the compiler to
                            // allow the assignation
需要一个演员,但是在

Object obj2 = (String) obj;

强制转换不执行任何操作(如果
obj
不是字符串,则抛出
ClassCastException

为什么要这样做?如果您在编译时不知道转换为什么,那么就没有理由进行转换。