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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к объекту в хэш-таблице по его имени 
:(
    Опции темы
x8m6
Дата 11.6.2009, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Тогда нафига вам вообще Java? Выписывайте имена на бумажку, на бумажку же выписывайте данные, потом просто все аккуратно разложите по папочкам и все будет ОК

Хорошо... тогда вы можете предложить свой вариант.. Как бы вы поступили в этом случае?
PM MAIL   Вверх
dorogoyIV
Дата 11.6.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



может быть возможно задействовать миллисекунды?,
т.е. к ID добавлять System.currentTimeMillis()
хотя я не ручаюсь за этот вариант smile
PM MAIL   Вверх
LSD
Дата 11.6.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(x8m6 @  11.6.2009,  19:21 Найти цитируемый пост)
Хорошо... тогда вы можете предложить свой вариант.. Как бы вы поступили в этом случае?

Я не понимаю этой ситуации, а ты упорно не хочешь рассказать поподробней о задаче. Потому никак не могу поступить.



Человек способен просмотреть глазами несколько десятков-пару сотен записей, не больше. Сотня записей легко помещается в список и выводится на экран, где пользователь ищет нужный ему элемент. Если данных больше, то ему уже надо предоставить средства сузить поиск: поиск по первым буквам имени, фильтрация по дополнительным параметрам и т.д. Какие средства использовать зависит от конкретной ситуации.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
x8m6
Дата 13.6.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Я не понимаю этой ситуации, а ты упорно не хочешь рассказать поподробней о задаче. Потому никак не могу поступить.


Да вроде в первом посте я всё довольно подробно расписал... ну хорошо,попробую ещё разок...
Есть некий объект и этот объект описывается множестовм свойств. Так как количество этих свойств неизвестно априори, они добавляются к объекту после его создания. Каждое свойство - это тоже объект. Для хранения свойств в объекте используется динамическая структура данных (в данном случае хэш - таблица). После того как объект создается, он может быть наделен любым набором свойств. Должна быть предусмотрена возможность изменния свойств объекта -> т.е. возможность получить доступ к объекту - свойству и уже в нем изменить данные.   

PM MAIL   Вверх
Fieral
Дата 15.6.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(x8m6 @ 13.6.2009,  16:30)
Цитата

Я не понимаю этой ситуации, а ты упорно не хочешь рассказать поподробней о задаче. Потому никак не могу поступить.


Да вроде в первом посте я всё довольно подробно расписал... ну хорошо,попробую ещё разок...
Есть некий объект и этот объект описывается множестовм свойств. Так как количество этих свойств неизвестно априори, они добавляются к объекту после его создания. Каждое свойство - это тоже объект. Для хранения свойств в объекте используется динамическая структура данных (в данном случае хэш - таблица). После того как объект создается, он может быть наделен любым набором свойств. Должна быть предусмотрена возможность изменния свойств объекта -> т.е. возможность получить доступ к объекту - свойству и уже в нем изменить данные.

я думаю вам надо подняться на уровень "выше": а именно перейти из Java-формата в XML-формат. Так сказать - метапереход.
там можно будет "гнуть" любые свойства и т.д....

Добавлено через 7 минут и 37 секунд
насколько я понял цель такая:

написать класс Human и содать его представителя(инстанц) "Вася"

Вася например может иметь машину - где машина это инстанц класса "Автомобили",
но так как гипотетически вася может, помимо машины, завтра, купить самолёт, который будет реализован классом "Самолёты" 
то автору не нравится добавлять поля car, jet в класс Human, ибо может быть и не будет у васи самолёта вообще никогда, а купит он лодку, и тогда придётся дописовать поле boat вместо jet

поэтому автор создал Map<String,Object> в который он собирается укладывать все потенциальные покупки Васи на 100 лет вперёд

я правильно понимаю?

Это сообщение отредактировал(а) Fieral - 15.6.2009, 11:55
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
x8m6
Дата 15.6.2009, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

я правильно понимаю?

Ну как пример, да
PM MAIL   Вверх
Fieral
Дата 15.6.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ну на мой взгляд нужно сделать предположение: что вы уже решили описанную в теме проблему.
и теперь ответить на вопрос: а что вы будете делать с этими "товарами" дальше?

Это сообщение отредактировал(а) Fieral - 15.6.2009, 16:14
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
x8m6
Дата 15.6.2009, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

ну на мой взгляд нужно сделать предположение: что вы уже решили описанную в теме проблему.


Нет, не решил. Если бы решил, галочку поставил бы.

Цитата

а что вы будете делать с этими "товарами" дальше?


"Товары" могут изменятся... амортизация и всё такое... поэтому должна быть возможность изменить какой-то "товар". 
Допустим у  Васи есть машина и в какой-то момент у неё вышел из строя двигатель... нужно получить доступ к этой машине и заменить двигатель на новый!


Это сообщение отредактировал(а) x8m6 - 15.6.2009, 23:53
PM MAIL   Вверх
Fieral
Дата 16.6.2009, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(x8m6 @ 15.6.2009,  21:20)
Цитата

ну на мой взгляд нужно сделать предположение: что вы уже решили описанную в теме проблему.


Нет, не решил. Если бы решил, галочку поставил бы.

Цитата

а что вы будете делать с этими "товарами" дальше?


"Товары" могут изменятся... амортизация и всё такое... поэтому должна быть возможность изменить какой-то "товар". 
Допустим у  Васи есть машина и в какой-то момент у неё вышел из строя двигатель... нужно получить доступ к этой машине и заменить двигатель на новый!

слово предположение "какбэ намекает"...

ну хорошо, дальше  

1) вопервых  когда вы напишете новый класс, например Submarine, и соберётесь прикупить Васе подводную лодку, тут выяснится что:
-  либо надо останавливать программу, импотировать в проект с васей jar-ку в которй есть класс Submarine и запускать всё заново - тогда придётся написать загрузчик/разгрузчик васи (который перед остановкой будет сохранять инстанц васи и его барахла на диск - иначе всё просто потеряется)
- либо подргужать классы динамически - что является по сути суровым гимороем и близко по своему механизму к анальным извращениям - хотя и так иногда делают тоже

2) вовторых я так понимаю ваша Java машина в случае поломки двигателя у васиной машины будет получать сигнал из глубин космоса который будет сообщать какой именно класс реализует васину машинуи какие именно методы у него вызывать, в результате чего будет генерироваться и самостоятельно компилироваться код:

Код


void repair(){

Car_v123 C = (Car_v123)map.get("car");
C.repair();

}



без сигнала из космоса тут не обойтись, ибо Java машина не может знать (даже если вы соберётесь использовать java-рефлексию) что класс автомобиля называется именно (например) Car_v123 а его метод - repair()

а потом ещё кто-то кстати должен будет скомпиировать этот код




Это сообщение отредактировал(а) Fieral - 16.6.2009, 00:14
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
x8m6
Дата 16.6.2009, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

либо подргужать классы динамически - что является по сути суровым гимороем и близко по своему механизму к анальным извращениям - хотя и так иногда делают тоже


Все классы, описывающие св-ва, загружаются через рефлексию! Тут всё нормально. Проблем нет.

Цитата

в случае поломки двигателя у васиной машины будет получать сигнал из глубин космоса который будет сообщать какой именно класс реализует васину машинуи какие именно методы у него вызывать


На счет этого тоже не стоит беспокоится. Все свойства работают через единый интерфейс. Так, что все методы известны, а каждый класс-проперти переопределяет их по своему.

PM MAIL   Вверх
Fieral
Дата 16.6.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А в чём проблема тогда?  smile 
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
LSD
Дата 16.6.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(x8m6 @  13.6.2009,  16:30 Найти цитируемый пост)
Да вроде в первом посте я всё довольно подробно расписал... ну хорошо,попробую ещё разок...
Есть некий объект и этот объект описывается множестовм свойств. Так как количество этих свойств неизвестно априори, они добавляются к объекту после его создания. Каждое свойство - это тоже объект. Для хранения свойств в объекте используется динамическая структура данных (в данном случае хэш - таблица). После того как объект создается, он может быть наделен любым набором свойств. Должна быть предусмотрена возможность изменния свойств объекта -> т.е. возможность получить доступ к объекту - свойству и уже в нем изменить данные.

Ты никак не можешь абстрагироваться и начать мыслить сущностями, а не кодом. Попробуй забыть про существование хэш таблиц, интерфейсов и т.д. У тебя есть некий набор сущностей вот и попробуй описать их свойства и алгоритм взаимодействия с ними.


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


P.S. Мое личное мнение, такие мегауниверсальные и мегагибкие системы - зло. Потому что, это не система, а конструктор. Чтобы пользоваться такой системой нужен штат программистов.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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