0

所以我有以下内容:

String string = "camera_icon"

在另一个地方我有:

Object camera_icon = new Object();

然后我将其称为:

do.some.stuff(camera_icon);

有没有办法可以输入以下内容:

做一些东西(字符串);

并让它工作。

4

2 回答 2

0

使用反射:

class Main
{
   YourObject cameraIcon = new YourObject();
   public void someMethod() throws Exception
   {
      Field field = getClass().getDeclaredField("cameraIcon");
      YourObject object = (YourObject)field.get(this);
   }
}

据我所知,您无法使用反射获得局部变量:

public void someMethod() throws Exception
{
   YourObject cameraIcon = new YourObject();
   // can't get cameraIcon from "cameraIcon" here
}
于 2013-07-04T09:10:45.347 回答
0

只要它是实例或类变量,您就可以使用反射来获取对象。

或者,您可以将对象放入 aMap并在 中查找Map

Map<String, Object> objects = new HashMap<String, Object>();
objects.put(string, new Object());

之后

Object myObject = objects.get(string);
于 2013-07-04T09:04:26.257 回答