Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > как создать объект, имя которого - строка из файла


Автор: olegrolik 9.4.2009, 12:50
Например:
Код

public static void main(String args[]) {
     // получаем объект String
     String s = getString();
     // 
     System.out.println(s); // к примеру получилось obj
    // как создать объект с именем obj ( List obj = new ArrayList(); )?
}


Вобщем, идея такая:
В файле есть список строк. я бы хотел их использовать как имена объектов.
Возможно такое?

Автор: Skynin 9.4.2009, 13:42
Цитата

В файле есть список строк. я бы хотел их использовать как имена объектов.

У объектов нет имен, а есть - типы-классы. "Имя объекта" - это переменная-ссылка на него.

Чтобы создать объект нужного типа - этот тип заранее должен быть описан в Вашей программе, и должен уметь заполняться с передаваемой строки.
Чтобы распознать какой тип объекта должен создаться, а потом заполниться можно
1. Определить вручную, сравнивая имя типа в строке в if (myTypeName.Equals("NNN")) object nnn = new NNN() (можно упрятать это дело в фабрику классов)
2. Использовать reflection
3. Использовать сериализацию

Цитата

Возможно такое?

Возможно.

Автор: olegrolik 9.4.2009, 14:54
Skynin, согласен, что я неправильно выразился. Но смысл того, что я прошу понятен?
1. Что такое myTypeName?
2. Как именно использовать reflection (пример) ?
3. Как именно использовать сериализацию(пример) ?

Наверняка уже придуман такой велосипед. Я не знаю как его искать.

Автор: ivg 9.4.2009, 15:57
olegrolik, можешь рассказать более раннюю постановку задачи? Потому что, то что ты хочешь (если я правильно понял) - имя переменной становиться известным только на этапе выполнения - никакого практического смысла не имеет. Поставить имя в соответствие объекту в рантайме можно с помощью, например, HashMap.

Автор: _Y_ 9.4.2009, 17:13
Мне кажется здесь какая-то путаница. Вы хотите создать переменную (содержащую ссылку на объект) с именем, которое будет подставляться из файла при работе программы. Но зачем это нужно? Ведь имена переменных во время работы программы никто не видит - они видны только разработчику.

Может быть Ваша программа обращается к разным переменным в зависимости от того, что содержится в файле? Я бы использовал для этого структуру TreeMap, а  в файле хранил бы не имена переменных, а ключи, по которым объекты и извлекались бы из этой структуры.

Автор: olegrolik 9.4.2009, 19:01
ivg_Y_, вы правы насчёт практического использования.
Сейчас сам понял, что не получится нормально работать с созданным объектом.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)