-1

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

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

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

yx1、x2 或 x3在哪里?所以方法实际上是x1.doSomething();还是等等?

4

3 回答 3

3

不。在 Java 中没有办法做到这一点,想要做到这一点表明您可能真的想要某种集合。

如果您有一组要通过连续整数标识的值,最好从 0 开始,则使用数组或List<T>. 如果你有一组你真的想通过字符串来识别的值(例如,因为你将拥有xandy而不是1and 2)然后使用 a Map<String, Foo>Foo你想要映射到的值的类型在哪里)。

于 2012-11-16T06:58:39.600 回答
-1
public void doThis(Object y)
   {
   y.doSomething();
   }

这是你应该做的。或者您可以只使用 if-else 或 case 语句并决定调用什么方法。

于 2012-11-16T07:00:39.630 回答
-1

您不能从字符串创建变量,但您可以从字符串动态创建类实例。例如

NewClassInterface x;

public void doThis(String y)
{
 x= Class.forName(y).newInstance();
 x.doSomething();
}

显然,您必须已经在任何地方都有 NewClass 实现。

希望这有帮助

于 2012-11-16T07:09:44.063 回答