Java将字符串转换为变量?

时间:2012-11-16 06:57:18

标签: java string

方法是否有可能获得string并将string转换为变量?如:

x1 = new X();
x2 = new X();
x3 = new X();

public void doThis(String y)
{
   y.doSomething();
}

其中y是x1,x2还是x3? 所以这个方法实际上是x1.doSomething();等等?

3 个答案:

答案 0 :(得分:3)

没有。没有办法在Java中完成它,想要这样做表明你可能真的想要某种类型的集合。

如果您有一组要通过连续整数识别的值,最好从0开始,则使用数组或List<T>。如果您有一组您真正希望通过字符串识别的值(例如,因为您将拥有xy而不是12,那么使用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实现。

希望这个帮助