Это простой вопрос (я думаю)
Предположим, у меня есть этот код (предположим, что у меня есть класс собаки)
String name = "dog";
dog name = new dog();
Как я могу получить java для распознавания имени в виде строки и имя объекта?
Это простой вопрос (я думаю)
Предположим, у меня есть этот код (предположим, что у меня есть класс собаки)
String name = "dog";
dog name = new dog();
Как я могу получить java для распознавания имени в виде строки и имя объекта?
Пока вы можете делать то, что вы пытаетесь использовать на некоторых языках сценариев, таких как PHP (и этот вопрос часто задают многие программисты PHP, которые запускают Java), это не то, как работает Java, а на самом деле имена переменных менее важно, чем вы можете реализовать и вряд ли даже существуют после компиляции кода. Что гораздо важнее, а ключевыми являются переменные ссылки - возможность получить доступ к определенному объекту в определенной точке вашей программы, и вы можете легко привязать строки к объектам, используя карту в качестве одного из способов.
Например
Map<String, Dog> dogMap = new HashMap<String, Dog>();
dogMap.put("Fido", new Dog("Fido"));
Dog myPet = dogMap.get("Fido");
Или вы можете получить ссылки на объекты многими другими способами, например, с помощью массивов, ArrayLists, LinkedLists или нескольких других коллекций.
Edit
Вы указываете:
Дело в том, что в моем коде я собираюсь использовать один метод для создания объектов, имя объекта произвольно, но мне нужно, чтобы оно было динамическим, потому что оно не будет временным, поэтому фактическое имя объекта имеет для изменения или я буду писать поверх ранее объявленного объекта.
Это именно то, что я имел в виду, когда я сказал, что имя переменной не так важно, как вы думаете. Имя переменной не имя объекта (это действительно не существует).
Например, если вы создаете собаку в переменной с именем Fido, а затем назначаете ее новой переменной с именем spot, обе переменные, несмотря на разные имена, будут ссылаться на один и тот же объект:
Dog fido = new Dog;
Dog spot = fido; // now fido and spot refer to the same object
Если вы хотите присвоить переменной "имя", считая присвоение классу свойства name:
class Dog {
private String name;
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Теперь вы можете дать каждому объекту Dog свое собственное (полу) уникальное имя, если хотите.
Я не думаю, что вы думаете о Enums?
private static void test () {
Animal animal = Animal.valueOf("Dog");
}
enum Animal {
Dog,
Cat,
Cow,
Pig,
Rat,
Ant,
Gnu;
}