我是一名 Java 初学者,想知道如何使用字符串命名类的实例,然后case:
使用该字符串/对象创建一个,同时保持完全自动化(System.in.read()
例如,使用 )?
问问题
104 次
2 回答
9
变量名只是为程序员提供便利——在你的代码编译后,它们甚至不会被跟踪。因此,不可能像那样动态地命名变量。但是,您可以尝试使用 aMap
来模仿:
Map<String, MyClass> map = new HashMap<String, MyClass>();
map.put("xyz", new MyClass()); // or something like that
...
"xyz"
现在您可以通过引用与字符串关联的对象map.get("xyz")
。
于 2013-07-09T15:47:20.257 回答
0
虽然这是一个非常糟糕的主意(使用某种 hashmap 代替),但可以使用称为反射的绘制。我个人不推荐这个。
假设您的类被调用Foo
并包含字段bar
和baz
.
现在,假设我们在类里面,Foo
所以我们可以使用this
关键字。如果使用对相关对象的现有引用,请更改this
为它。fName
是我们想要的变量的名称。
Class<?> c = this.getClass();
Field ourField = c.getDeclaredField("fName");
Object ourValue = ourField.get(this);
请注意,这是痛苦的、缓慢的,并且需要额外的工作才能访问原语。
例如,如果ourField
是一个int
,我们希望将最后一个值更改为:
int intVal=ourField.getInt(this);
于 2013-07-09T15:49:20.983 回答