1 / 1 / 1
Регистрация: 12.01.2013
Сообщений: 8

Динамическое имя параметра класса

15.01.2013, 01:12. Показов 2180. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть таблица БД, при выборке хочу создавать на каждую запись объект класса, в котором поля класса будут соответствовать именам полей класса. Проблема в том, что хочу называть параметр таким же именем как и столбец таблицы. Имеется ли возможность задавать имя параметра из стринга?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.01.2013, 01:12
Ответы с готовыми решениями:

Как создать динамическое имя потока?
Добрый день! Тренировался в работе с потоками и пришел к такой проблеме: имеется какое-то количество операций(которое постоянно...

Создать объект класса, зная имя класса, а параметры получать из формы
У меня есть форма, на которой есть Combobox, в котором можно выбрать класс. При выборе одно из айтемов, на форме добавляются поля ввода, в...

Возможно ли как-то, зная имя класса, вернуть в каком-либо методе имя класса?
Добрый день! Интересуюсь. Есть Обобщенный метод, например: Add<T>(string nameElement). Какой конкретно Т определяется...

13
66 / 55 / 11
Регистрация: 16.04.2010
Сообщений: 190
Записей в блоге: 1
15.01.2013, 10:21
Что такое ПАРАМЕТР класса?
Цитата Сообщение от CostaConquesta Посмотреть сообщение
в котором поля класса будут соответствовать именам полей класса
Что?

Если Вам известны таблицы, то объявите для каждой из них соответствующий класс с полями, которые будут соответствовать столбцам таблицы. Когда будете извлекать данные из таблицы, создайте новый объект соответствующего класса, установите значения его полей и поместите полученный объект в список.
Вы это имели ввиду?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
15.01.2013, 15:29
Для этого можно использовать конструкцию типа Map<String, Object> - для каждой строки. Ключ - имя поля, значение - значение поля. Ну или как уже предложили - класс на таблицу создавать вручную.
0
1 / 1 / 1
Регистрация: 12.01.2013
Сообщений: 8
15.01.2013, 15:49  [ТС]
Цитата Сообщение от raiderx Посмотреть сообщение
Что такое ПАРАМЕТР класса?

Что?

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

Да про HeshMap знаю, но хотелось бы именно программно создавать класс по структуре таблицы. У меня может быть множество таблиц с разной структурой, не хотелось бы на каждый тип вручную создавать класс.
0
66 / 55 / 11
Регистрация: 16.04.2010
Сообщений: 190
Записей в блоге: 1
15.01.2013, 16:13
Кажется, в NetBeans есть мастер, который генерирует классы используя данные из БД (существующего соединения JDBC). Но это только на этапе проектирования приложения.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
15.01.2013, 17:08
Цитата Сообщение от CostaConquesta Посмотреть сообщение
хотелось бы именно программно создавать класс по структуре таблицы. У меня может быть множество таблиц с разной структурой, не хотелось бы на каждый тип вручную создавать класс.
Вам на лету? Или все-таки один раз при изначальном импорте структуры?
0
1 / 1 / 1
Регистрация: 12.01.2013
Сообщений: 8
17.01.2013, 10:03  [ТС]
Хотелось бы на лету. Но и альтернативные варианты тоже интересны.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
17.01.2013, 11:57
Цитата Сообщение от CostaConquesta Посмотреть сообщение
Хотелось бы на лету. Но и альтернативные варианты тоже интересны.
Простите, а зачем Вам на лету?

Чем хорош класс? Тем, что Вы можете в коде использовать его методы по именам. У Вас сразу есть связывание и проверка типов.

Если Вы генерируете класс на лету - Вы НЕ МОЖЕТЕ использовать его методы в коде во время разработки. Т.е. теряется основное преимущество.

Что Вы будете делать со сгенерированным на лету классом? Допустим, что Вы его таки сгенерировали и он у Вас уже есть. Как Вы собираетесь его использовать в коде?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
17.01.2013, 12:42
Цитата Сообщение от Skipy Посмотреть сообщение
Если Вы генерируете класс на лету - Вы НЕ МОЖЕТЕ использовать его методы в коде во время разработки.
Вообщето нет, есть шаблон command и под него прекрасно всё генерится на лету и потом без проблем выполняется.
Правда это накладывает определённые ограничения на класс, но всё же это не невозмоно.
1
1 / 1 / 1
Регистрация: 12.01.2013
Сообщений: 8
17.01.2013, 14:31  [ТС]
Цитата Сообщение от Skipy Посмотреть сообщение
Что Вы будете делать со сгенерированным на лету классом? Допустим, что Вы его таки сгенерировали и он у Вас уже есть. Как Вы собираетесь его использовать в коде?
Это скорее эстетический интерес соорудить такую конструкцию, чем для практического применение. Я использую HashMap сейчас, но интересно было бы сделать по другому. Ведь лень и интерес двигатели прогресса, не так ли?)
0
17.01.2013, 14:34

Не по теме:

пинок под зад, двигатель прогресса

0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
17.01.2013, 14:53
Цитата Сообщение от mutagen Посмотреть сообщение
Вообщето нет, есть шаблон command и под него прекрасно всё генерится на лету и потом без проблем выполняется.
Правда это накладывает определённые ограничения на класс, но всё же это не невозмоно.
Э-э-э... Я прекрасно знаю, вообще-то, что такое Command. Но это не наш случай. У нас - генерация сущностей a-la ORM. У Command есть определенный интерфейс, под который можно всё сгенерировать. В обсуждаемом случае интерфейса нет и, имхо, быть не может, кроме какого-нибудь бесполезного (который скажет, что это entity, но использовать эту entity нормально не позволит по причинам, которые я озвучивал).

Добавлено через 2 минуты
Цитата Сообщение от CostaConquesta Посмотреть сообщение
Это скорее эстетический интерес соорудить такую конструкцию, чем для практического применение. Я использую HashMap сейчас, но интересно было бы сделать по другому. Ведь лень и интерес двигатели прогресса, не так ли?)
Сгенерировать - можете. А использовать? В этом-то и вопрос!

Можно построить стол из песка? Можно. А работать за ним? А смысл тогда строить?
1
1 / 1 / 1
Регистрация: 12.01.2013
Сообщений: 8
17.01.2013, 19:03  [ТС]
Хочется делать что-то, хоть бесполезное, но интересное( +опыт бесценен).

Дабы не плодить топики, задам ещё вопрос: можно ли через апплет работать с файловой системой клиента?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
17.01.2013, 21:37
Цитата Сообщение от CostaConquesta Посмотреть сообщение
Дабы не плодить топики, задам ещё вопрос: можно ли через апплет работать с файловой системой клиента?
одна тема - один вопрос, загляните в правила
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2013, 21:37
Помогаю со студенческими работами здесь

Инициализация шаблонного класса(В конструкторе класса после двоеточия вновь имя класса)
Всем доброго времени суток! Пытаюсь разобраться как работает приведенный мной код. Конкретно, пытаюсь разобраться что происходит в...

Можно ли во время выполнения "извлечь" имя приложения, имя класса, имя исполняемого метода и пр. ?
или какие-нубдь &quot;квазипеременные&quot; компилятора, позволяющие их использовать?

Как передать в процедуру/функцию имя класса, который еще не создан (универсальное имя)
Всем привет, помогите. ;) Пишу MVVM-приложение, будем много WPF форм. Для каждой формы нужно предусмотреть например, добавление...

Как задать динамическое изменение имени параметра
Здравствуйте, помогите, пожалуйста советом. Есть три вектора разной длины А1, А2, А3. Теперь я хочу в цикле поочередно к ним обращаться...

Имя параметра области
Всем привет! Вот такой вопрос-можно ли как то передать имя параметра области макета в виде параметра? Что есть: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru