1

たとえば、

String name = "Peter";

そして、次のように、仮説の特定のインスタンスにEmployeeこの文字列にちなんで名前を付けたいと考えています。

Employee ____ = new Employee(...);

それで、私はそこに何を入れなければなりませんか?

4

3 に答える 3

3

これが Java で実行できるかどうかはわかりません。代わりにMapを使用できます。ここで、キーは従業員名"Peter"になり、値はEmployeeオブジェクトになります。ただし、その場合、クラスの他のフィールドを使用してandメソッドをEmployeeオーバーライドすることにより、同じ名前の 2 つのオブジェクトを区別する必要があります。hashCode()equals()Employee

Map<String, Employee> employeeMap = new HashMap<>();
employeeMap.put("Peter",  new Employee("Peter")); // assuming you have this constructor
Employee e = employeeMap.get("Peter");

より良いアプローチは、employeeID などのIDキーとして一意のものを使用することです。Map

Employee"name" というフィールドがある場合。コンストラクターまたはセッターメソッドを使用して設定できます。

于 2013-06-15T14:15:01.873 に答える
2

変数名はJava では関係ありません。変数名はコードがコンパイルされると失われ、プログラマーにとって便利なだけです。したがって、そのように動的に変数に名前を付けることはできません。

クラスnameのフィールドを作成するか、他の人が提案したように a を使用できます。名前で従業員をすばやく検索する方法が必要な場合は、後者のオプションがおそらく最良の方法です。EmployeeMap<String, Employee>

于 2013-06-15T14:19:19.747 に答える
1

参照を保持するローカル変数にのみ名前を付けることができます。

Employee peter = new Employee("peter");

従業員の私の名前を検索できるようにしたい場合は、次のことができます

Map<String, Employee> employeeMap = new LinkedHashMap<>();

employeeMap.put("peter",  new Employee("peter"));

Employee e = employeeMap.get("peter");
于 2013-06-15T14:14:51.500 に答える