0

私の問題は、オブジェクトが作成され、その名前がユーザーからの入力として取得されるときに、オブジェクトに動的に名前を付けることです。

以下は、オブジェクトを動的に作成できるコードですが、この場合は「obj」のように、前に具体的に名前を付ける必要があります。

private Class ClassName=null;
private Object obj=null;

ClassName=Class.forName(token[2]);
obj=ClassName.newInstance();

私が必要とするのは、オブジェクトに「obj」ではなく「x」という名前を付ける必要があるとユーザーが言った場合のように、ユーザーがその名前を指定するときにオブジェクトを作成することだけです。

4

2 に答える 2

5

オブジェクトには名前がありません。変数にはがあります。ただし、変数を動的に作成することはできません。オブジェクトを名前に関連付ける場合は、:を使用しますMap<String, Object>

Map<String, Object> objectsByName = new HashMap<String, Object>();
...
objectsByName.put("Joe", obj);
...
Object objectNamedJoe = objectsByName.get("Joe");
于 2013-03-03T16:25:55.673 に答える
3

変数名の名前を変更することはできません。これはコンパイル時のプロセスであり、ユーザー入力は実行時です。

于 2013-03-03T16:25:53.030 に答える