-1

我是一名 Java 初学者,想知道如何使用字符串命名类的实例,然后case:使用该字符串/对象创建一个,同时保持完全自动化(System.in.read()例如,使用 )?

4

2 回答 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并包含字段barbaz.

现在,假设我们在类里面,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 回答