Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как создать объект, имя которого - строка из файла, подробнее в топике. 
V
    Опции темы
olegrolik
Дата 9.4.2009, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 309
Регистрация: 25.1.2006

Репутация: нет
Всего: нет



Например:
Код

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


Вобщем, идея такая:
В файле есть список строк. я бы хотел их использовать как имена объектов.
Возможно такое?
PM MAIL   Вверх
Skynin
Дата 9.4.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 6
Всего: 10



Цитата

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

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

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

Цитата

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

Возможно.
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
olegrolik
Дата 9.4.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 309
Регистрация: 25.1.2006

Репутация: нет
Всего: нет



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

Наверняка уже придуман такой велосипед. Я не знаю как его искать.
PM MAIL   Вверх
ivg
Дата 9.4.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 33
Всего: 81



olegrolik, можешь рассказать более раннюю постановку задачи? Потому что, то что ты хочешь (если я правильно понял) - имя переменной становиться известным только на этапе выполнения - никакого практического смысла не имеет. Поставить имя в соответствие объекту в рантайме можно с помощью, например, HashMap.
PM MAIL   Вверх
_Y_
Дата 9.4.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



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

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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
olegrolik
Дата 9.4.2009, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 309
Регистрация: 25.1.2006

Репутация: нет
Всего: нет



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


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1092 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.