【发布时间】:2015-03-18 20:20:16
【问题描述】:
我的类类型保存在这样的字符串中:
String cls = "Test";
这是我尝试过的一些代码:
String cls = "Test";
Object obj = new Test();
Test test = (Class.forName(cls)) obj;
但它以编译错误结束:
Main.java:21: error: ';' expected
Test test = (Class.forName(cls)) obj;
如何使用这个字符串进行类型转换?
PS:假设我不知道obj 是什么类型,我只有String cls。
【问题讨论】:
-
将 Class Test 区分为一个对象(或产生它的表达式)和字符串
Test为用 Java 程序编写的 4 个字母的序列。这两者之间存在世界。 -
我知道,但是我如何在类中转换字符串,有没有像
com.package.Test这样的字符串中的类全名选项? -
您在左侧声明 test 为“Test”类型。因此,此时在您的程序中,您知道要强制转换为 Test 类型。我认为这是让人们感到困惑的地方。您希望使用字符串动态设置强制转换,但在编译时您已经知道您期望的类型。
-
@darrenmc 也许我用了错误的例子,但这正是我想要的。使用带有类名的字符串动态转换对象。
标签: java type-conversion