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