所以我有以下内容:
String string = "camera_icon"
在另一个地方我有:
Object camera_icon = new Object();
然后我将其称为:
do.some.stuff(camera_icon);
有没有办法可以输入以下内容:
做一些东西(字符串);
并让它工作。
使用反射:
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
}
只要它是实例或类变量,您就可以使用反射来获取对象。
或者,您可以将对象放入 aMap
并在 中查找Map
:
Map<String, Object> objects = new HashMap<String, Object>();
objects.put(string, new Object());
之后
Object myObject = objects.get(string);