たとえば、
String name = "Peter";
そして、次のように、仮説の特定のインスタンスにEmployee
この文字列にちなんで名前を付けたいと考えています。
Employee ____ = new Employee(...);
それで、私はそこに何を入れなければなりませんか?
これが 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" というフィールドがある場合。コンストラクターまたはセッターメソッドを使用して設定できます。
変数名はJava では関係ありません。変数名はコードがコンパイルされると失われ、プログラマーにとって便利なだけです。したがって、そのように動的に変数に名前を付けることはできません。
クラスname
のフィールドを作成するか、他の人が提案したように a を使用できます。名前で従業員をすばやく検索する方法が必要な場合は、後者のオプションがおそらく最良の方法です。Employee
Map<String, Employee>
参照を保持するローカル変数にのみ名前を付けることができます。
Employee peter = new Employee("peter");
従業員の私の名前を検索できるようにしたい場合は、次のことができます
Map<String, Employee> employeeMap = new LinkedHashMap<>();
employeeMap.put("peter", new Employee("peter"));
Employee e = employeeMap.get("peter");