S: Adakah mungkin untuk menggunakan nilai Rentetan untuk mencipta nama pembolehubah secara dinamik dalam Java?
Sebagai contoh, diberikan kod berikut:
<code class="java">String name = "dog"; dog name = new dog();</code>
Bagaimanakah seseorang boleh mengarahkan Java untuk mentafsir "nama" sebagai String dan menetapkannya kepada objek "anjing" yang baru dibuat?
J: Walaupun sesetengah bahasa skrip seperti PHP membenarkan kelakuan sedemikian, Java tidak. Di Java, nama pembolehubah adalah berbeza daripada rujukan pembolehubah, yang menyediakan akses kepada objek tertentu.
Salah satu cara untuk mencapai kefungsian yang diingini ialah menggunakan Peta untuk mengaitkan Strings dengan objek. Contohnya:
<code class="java">Map<String, Dog> dogMap = new HashMap<>(); dogMap.put("Fido", new Dog("Fido")); Dog myPet = dogMap.get("Fido");</code>
Sebagai alternatif, terdapat banyak cara lain untuk mendapatkan rujukan kepada objek, seperti tatasusunan, ArrayLists, LinkedLists dan koleksi lain.
Penjelasan Lanjut:
Jika matlamatnya adalah untuk mencipta objek secara dinamik dengan nama arbitrari yang berterusan di luar penciptaannya, adalah penting untuk memahami bahawa nama pembolehubah tidak sinonim dengan "nama objek." Kedua-dua pembolehubah, "fido" dan "spot," akan menyimpan rujukan kepada objek yang sama, walaupun nama mereka berbeza.
<code class="java">Dog fido = new Dog; Dog spot = fido; // now fido and spot refer to the same object</code>
Untuk menetapkan "nama" pada setiap objek, pertimbangkan untuk menambah sifat "nama" kepada kelas.
<code class="java">class Dog { private String name; public Dog(String name) { this.name = name; } public String getName() { return name; } }</code>
Ini membolehkan setiap objek Anjing mempunyai nama uniknya sendiri.
Atas ialah kandungan terperinci Bolehkah Saya Mencipta Nama Pembolehubah secara Dinamik dalam Java Menggunakan Nilai Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!