我想将一个对象转换为以字符串形式出现在我身上的几种不同类型之一。我知道演员会工作,但我还没有设法解决这个问题:
Tools a = new Loader(); //Loader extends the Tools abstract class
String cl = "Loader";
Loader b = (cl) a; //Obviously this doesn't work
Loader b = (Loader) a; //This is the effect I want, but from a String repr. of Loader
如何转换此字符串以使此类型转换成功?我尝试了Class.forName()
没有取得好成绩:
Loader b = (Class.forName(cl)) a;
...但我对Type mismatch: cannot convert from Class<capture-#1-of ?> to Loader
此外,作为此问题的扩展,我是否需要首先将对象强制转换为类型,或者我是否可以在方法调用中使用它作为动态强制转换,如下所示:
doSomething(("Loader") b); //Assuming doSomething requires a Loader type...
答案 0 :(得分:0)
我想这对你有用。
String c1 = "Loader";
Class c = Class.forName(c1);
Loader b = (c)a;