![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: нет Всего: 7 |
простите если мой вопрос покажется глупым, но Java я изучаю не долго и маловато навыков.
1. работает приложение используя org.apache.ojb 2. есть классик для работы с БД, который использует класс PersistenceBroker У этого класса есть метод broker.store(Object ...) который вставляет наш объект в базу. название базы, имя таблицы и имена полей он берет из XML. Для каждого класса соответствена своя таблица в БД и свое объявление в .java Проблема заключается в следующем: для работы функции broker.store(Object ...) необходимо не только наличие Object, но и принадлежнасть его к определенному классу, по этому классу функция определяеи куда вставлять данные (в какую таблицу) Мне же необходимо реализовать универсальную функцию в которую приходит объект неизвестного класса, который потом будем вставлять. Вопрос: Как это сделать? Собственно функция:
|
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Если у тебя камнем преткновения является определение принадлежности объекта к какому-либо классу, то это можно определить используя выражение instanceof. В документации посмотришь что да как.
Ещё имя класса для объекта можно получить следующим образом:
|
|||
|
||||
| Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: нет Всего: 7 |
Да в этом то и проблема что необходимо не просто получить название класса!
необходимо определить переменную memberVO как переменную определенного класса что-то типо этого (но так нельзя ((( . такое объявление - глупость)
этим я хочу сказать что необходимо создать переменную того класса который к нам приходит, а как это сделать понятие не имею Наверное тут надо использовать что-то типо позднего связывания. Вот только не знаю как это реализовать это на Java |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Ясно. тебе нужно смотреть в сторону Reflection.
Он позволяет создавать объекты зная только его имя. А так же ещё очень многое. Например создание класса по имени:
|
|||
|
||||
| Asal |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: нет Всего: 7 |
Да штучка класная !
Но ... Это все равно что сделать
а хчется все же
вот тут и возникает проблема с приведением типов, надо-то явно указать Может можно как-то конвертировать мой Object insertRecord в класс имя которого мы получим из insertRecord |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Еще раз. Если ты заранее знаешь какого типа может быть объект, то используй instanceof или getClass(). Если же ты вообще не имеешь представления о том, что это за объект, то и конструкция типа:
тебе не поможет, т.к. об этом объекте на этапе компиляции ничего не известно. А поможет только Reflection. -------------------- 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. |
|||
|
||||
| Foo |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 20.10.2006 Репутация: нет Всего: 3 |
несовсем понял что ты хочеш сделать, но если так как написано выше, то может тебе подойдет:
--------------------
qip |
||||||
|
|||||||
| Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: нет Всего: 7 |
Thanks всем за помощь!!!
Особенно powerOn ! Впринципе проблемы как оказалось и нет ))) Функция broker.store(Object ...) кушает хорошо и просто Object. Но на будущее опыт хороший... кострукция была приведена для более наглядного примера ) Тут действительно единственное что может помочь это Reflection |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |