
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.05.2012, 16:35:25
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
У класса есть куча наследников. Я хочу их всех записать в массиве (или где угодно, лишь бы можно было обратиться по индексу). Не создавая объектов т.е. не так : Код: java 1. 2. 3. а как-то так: Код: java 1. 2. 3. Получилось что-то похожее: Код: java 1. 2. 3. В принципе c этим уже можно работать. Но это не очень удобно. Хотелось бы обращаться к статическим полям\методам ("переопределённым" - redefined) не мусоря объектами. (Но иногда объекты будут нужны) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 16:43:55
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
у вас субъективное мнение о наследовании. Какой смысл в таких наследниках, если в статике отсутствует полиморфизм? Там нет никакого переопределения методов. Там прямое статическое связывание во время компиляции. почему вы не хотите создать объекты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 16:58:01
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
Blazkowiczпочему вы не хотите создать объекты? Я хочу. avp.mk(Но иногда объекты будут нужны) Но не для того чтобы посмотреть константу (значения которой для всех подклассов отличаются) Если не понятно, я привёл не весь код класса, а только одну строчку относящуюся к вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:08:08
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
Добрый день, avp.mk! > Получилось что-то похожее: > > public class TexturePorod extends Region { > public static final Class[] ALL = {Alevrolit.class, Gavrelit.class}; > } > В принципе c этим уже можно работать. Но это не очень удобно. Вы понимаете, что количество наследников нельзя предугадать? Какая, вообще, цель всего этого? Мне думается, у Вас ошибка где-то на предыдущем шаге. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:16:03
|
|||
|---|---|---|---|
Возможно сделать массив классов? |
|||
|
#18+
avp.mkХотелось бы обращаться к статическим полям\методам ("переопределённым" - redefined) не мусоря объектами. (Но иногда объекты будут нужны) Неясно, что ты на этом экономишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:20:03
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
Сложно подобрать оптимальное решение, не зная зачем всё это нужно. Приведите use-case использования вашего кода и тогда можно найти к нему решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:24:59
|
|||
|---|---|---|---|
Возможно сделать массив классов? |
|||
|
#18+
мне почему-то кажется что тут банальный enum нужен:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:26:05
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
забыл никмне почему-то кажется что тут банальный enum нужен:) Да, enum как реестр для наследников тоже не плохой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:33:23
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
Добрый день, забыл ник! > мне почему-то кажется что тут банальный enum нужен:) Да, у нас так сделано. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:38:31
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
Вопрос, пожалуй, можно поставить так - "Можно-ли в джаве создать массив с сылками не в хип, а в статический контекст?". GKS_SamaraВы понимаете, что количество наследников нельзя предугадать? Мне не нужно предугадывать всех. Каких напишу в фигурных скобках - тех достаточно. Все классы пишу я. Не ищите проблему там, где её нет. GKS_SamaraКакая, вообще, цель всего этого? Создавать (и не только) разные подклассы в зависимости от данных взятых из БД. GKS_SamaraМне думается, у Вас ошибка где-то на предыдущем шаге. Посоветуйте существующие решение цель я написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:42:33
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
avp.mkВопрос, пожалуй, можно поставить так - "Можно-ли в джаве создать массив с сылками не в хип, а в статический контекст?" Объекты размещаются в куче и на стеке. Что за "статический контекст" ? Отказываейтесь от статики. Она в случае наследования точно не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:43:10
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
забыл никмне почему-то кажется что тут банальный enum нужен:) К enum'у можно обратиться по индексу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:46:53
|
|||
|---|---|---|---|
Возможно сделать массив классов? |
|||
|
#18+
avp.mkзабыл никмне почему-то кажется что тут банальный enum нужен:) К enum'у можно обратиться по индексу? Специально для тебя компиллятор любезно генерит авто-метод public static EnumClass[] values() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:48:46
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
avp.mkК enum'у можно обратиться по индексу? values() только зачем вам по индексу?? Это очень странное желание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:53:16
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
Blazkowicz, +1 ordinal использовать напрямую очень плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 17:53:19
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
Добрый день, avp.mk! > Создавать (и не только) разные подклассы в зависимости от данных взятых > из БД. Велосипед называется JPA/Hibernate. Ну или iBatis. @Entity @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name="...",discriminatorType=DiscriminatorType.STRING) @DiscriminatorValue(value="...") Или можно самому сделать фабрику (да хоть в виде enum'а)- ей на вход имя класса- она объект. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 18:13:15
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
Объекты в стеке - круто. Тексты на вход вместо того чтобы перейти по индексу в массиве - тоже. Enum - подумаю, не нравиться что им нельзя расширить другой класс. Пока склоняюсь к мнению просто сделать простым (пустым) конструктор по-умолчанию и создавать при помощи него только объекты в массиве и параметризованный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 21:37:46
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
avp.mkПока склоняюсь к мнению просто сделать простым (пустым) конструктор по-умолчанию и создавать при помощи него только объекты в массиве и параметризованный... Передумал Большой Синий Китordinal использовать напрямую очень плохо. Можно узнать почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2012, 23:25:08
|
|||
|---|---|---|---|
|
|||
Возможно сделать массив классов? |
|||
|
#18+
avp.mk, Потому что все поломается при изменении порядка объявления значений енума. Здесь описано решение для данной проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2131772]: |
0ms |
get settings: |
16ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
50ms |
get topic data: |
17ms |
get forum data: |
5ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 350ms |
| total: | 542ms |

| 0 / 0 |
