我有一个问题,我有一个如下代码:
controller.start(c.class, 1);
但我想从控制台设置“c”。我可以在main方法上从args获取/设置它。但我怎么能把它放在c.class上?我的意思是我该怎么做?
字符串a =“c”;
controller.start(a.class,1);
当然它不起作用,但我希望我可以告诉你我的问题
在php上我们可以使用$$ string来设置/获取字符串变量,但我不知道我们怎么能在Java上做到这一点?
答案 0 :(得分:1)
更常用(也更安全)的解决方法是使用地图:
private static final Map<String, Class<?>> NAME_TO_CLASS = new Map<>();
static {
NAME_TO_CLASS.put("c", c.class);
...
}
static void main(String[] args) {
...
controller.start(NAME_TO_CLASS.get(args[0]), 1);
}
当然,在现实生活中,您需要检查参数是否正确并且在地图中是否为NAME_TO_CLASS.contains(your_arg);