您好!我正在尝试创建一个java块,它允许我根据从数组中调用的字符串来调用类 - 但是,不幸的是,我似乎无法让它工作。如果有人能提供帮助我会非常感激,我已经包含了迄今为止我已经删除过的代码......
public class ProcrastinatorPanel extends JPanel {
String[] room = {
"Hallway", "Bathroom", "Study",
"Bedroom", "Dining Room", "Living Room",
"Kitchen", "Playroom", "Bathroom", "Garage" };
int roomNumber = 0;
public ProcrastinatorPanel() {
Hallway.hallway = new Hallway();
Class roomClass = Class.forName(room[roomNumber]);
}
}
答案 0 :(得分:2)
要使Class.forName()
方法起作用,您需要传递一个表示完全限定类名的字符串。例如。 "com.mycompany.main.Hallway"
你也可以尝试制作一个Class
es数组而不是一个字符串数组。为了帮助您入门,表达式Hallway.class
将评估为Hallway类
同样,专业人士指出Hallway.hallway = new Hallway()
不会起作用。代码应为Hallway hallway = new Hallway()
。 Hallway
是变量的类型,hallway
是名称。
答案 1 :(得分:0)
Class.forName()需要完全限定的类名。
此外,我没有看到任何catchN /抛出ClassNotFoundException异常。你提到的代码是否完整?