方法是否有可能获得string
并将string
转换为变量?如:
x1 = new X();
x2 = new X();
x3 = new X();
public void doThis(String y)
{
y.doSomething();
}
其中y
是x1,x2还是x3?
所以这个方法实际上是x1.doSomething()
;等等?
答案 0 :(得分:3)
没有。没有办法在Java中完成它,想要这样做表明你可能真的想要某种类型的集合。
如果您有一组要通过连续整数识别的值,最好从0开始,则使用数组或List<T>
。如果您有一组您真正希望通过字符串识别的值(例如,因为您将拥有x
和y
而不是1
和2
,那么使用Map<String, Foo>
(其中Foo
是您要映射到的值的类型)。
答案 1 :(得分:-1)
public void doThis(Object y)
{
y.doSomething();
}
这就是你应该做的。或者您可以只使用if-else或case语句并决定调用哪种方法。
答案 2 :(得分:-1)
您可以不从字符串创建变量,但可以从字符串动态创建类实例。 e.g
NewClassInterface x;
public void doThis(String y)
{
x= Class.forName(y).newInstance();
x.doSomething();
}
显然,你必须已经在任何地方都有NewClass实现。
希望这个帮助