Создание динамических объектов с использованием строковых имен переменных
Жесткие правила именования переменных в Java могут показаться ограничивающими при попытке создания объектов с динамически генерируемыми именами . Однако это предполагаемое ограничение на самом деле является результатом сосредоточения внимания Java на ссылках на переменные и относительно меньшей важности имен переменных.
В то время как языки сценариев, такие как PHP, позволяют создавать переменные со строковыми именами, Java использует другой подход. Переменные в Java в основном служат ссылками на объекты, а их имена менее значимы.
Выполнение требований к именованию объектов
В сценариях, где объекты требуют динамического именования, рекомендуется использовать контейнеры, такие как Maps или Списки. Эти контейнеры позволяют сопоставлять строковые значения с объектами, обеспечивая гибкость в доступе к объектам и манипулировании ими на основе динамических критериев:
Map dogMap = new HashMap();
dogMap.put("Fido", new Dog("Fido"));
Dog myPet = dogMap.get("Fido");
В этом примере строка "Fido" служит ключом для доступа к соответствующему объекту собаки "Fido" из контейнера DogMap.
В качестве альтернативы можно реализовать свойство name внутри самого класса Dog:
class Dog {
private String name;
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Этот подход позволяет каждому объекту собаки иметь свойство имени, которое можно получить или изменить:
Dog fido = new Dog("Fido");
Dog spot = new Dog("Spot");
System.out.println(fido.getName()); // Outputs "Fido"
В целом, хотя Java не позволяет создавать переменные со строковыми именами, различные альтернативные подходы обеспечивают гибкость в обработке объектов с динамическими именами.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3