Creazione di un nome di variabile usando un valore di stringa

Questa è una domanda semplice (credo)

Diciamo che ho questo codice (supponendo che abbia una class di cani)

String name = "dog"; dog name = new dog(); 

Come posso ottenere java per riconoscere il nome come stringa e nominare il cane object?

Mentre puoi fare ciò che stai provando in alcuni linguaggi di scripting come PHP (e questa domanda viene spesso posta da molti programmatori PHP che avviano Java), non è così che funziona Java, e infatti i nomi delle variabili sono molto meno importanti di potresti realizzare e difficilmente persino esistere dopo che il codice è stato compilato. Ciò che è molto più importante e la chiave sono i riferimenti variabili: la possibilità di accedere a un particolare object in un punto particolare del programma e si può fare in modo che le stringhe si riferiscano agli oggetti semplicemente usando una mappa come unico senso.

Per esempio

 Map dogMap = new HashMap(); dogMap.put("Fido", new Dog("Fido")); Dog myPet = dogMap.get("Fido"); 

Oppure puoi ottenere riferimenti agli oggetti in molti altri modi, ad esempio tramite array, elenchi di array, elenchi di collegamenti o altri collettivi.

modificare
Dichiari:

Il fatto è che nel mio codice userò un metodo per creare oggetti, il nome dell’object è arbitrario, ma ho bisogno che sia dinamico perché non sarà temporaneo, quindi il nome effettivo dell’object deve cambiare o Scriverò sull’object precedentemente dichiarato.

Questo è esattamente ciò che intendevo quando ho detto che il nome della variabile non è così importante come pensi che sia. Il nome della variabile non è il “nome object” (questo in realtà non esiste di fatto).

Ad esempio, se crei un cane in una variabile denominata Fido e quindi assegni a una nuova variabile denominata spot, entrambe le variabili, nonostante abbiano nomi diversi, faranno riferimento allo stesso object:

 Dog fido = new Dog; Dog spot = fido; // now fido and spot refer to the same object 

Se vuoi assegnare a una variabile un “nome”, considera la class come proprietà del nome:

 class Dog { private String name; public Dog(String name) { this.name = name; } public String getName() { return name; } } 

Ora puoi dare a ciascun object Dog il proprio nome (semi) univoco, se lo desideri.

Non penso che tu stia pensando a Enums ?

 private static void test () { Animal animal = Animal.valueOf("Dog"); } enum Animal { Dog, Cat, Cow, Pig, Rat, Ant, Gnu; }