|
|
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
У класса есть куча наследников. Я хочу их всех записать в массиве (или где угодно, лишь бы можно было обратиться по индексу). Не создавая объектов т.е. не так : Код: java 1. 2. 3. а как-то так: Код: java 1. 2. 3. Получилось что-то похожее: Код: java 1. 2. 3. В принципе c этим уже можно работать. Но это не очень удобно. Хотелось бы обращаться к статическим полям\методам ("переопределённым" - redefined) не мусоря объектами. (Но иногда объекты будут нужны) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 16:35:25 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
у вас субъективное мнение о наследовании. Какой смысл в таких наследниках, если в статике отсутствует полиморфизм? Там нет никакого переопределения методов. Там прямое статическое связывание во время компиляции. почему вы не хотите создать объекты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 16:43:55 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
Blazkowiczпочему вы не хотите создать объекты? Я хочу. avp.mk(Но иногда объекты будут нужны) Но не для того чтобы посмотреть константу (значения которой для всех подклассов отличаются) Если не понятно, я привёл не весь код класса, а только одну строчку относящуюся к вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 16:58:01 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#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:08:08 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
avp.mkХотелось бы обращаться к статическим полям\методам ("переопределённым" - redefined) не мусоря объектами. (Но иногда объекты будут нужны) Неясно, что ты на этом экономишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:16:03 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
Сложно подобрать оптимальное решение, не зная зачем всё это нужно. Приведите use-case использования вашего кода и тогда можно найти к нему решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:20:03 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
мне почему-то кажется что тут банальный enum нужен:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:24:59 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
забыл никмне почему-то кажется что тут банальный enum нужен:) Да, enum как реестр для наследников тоже не плохой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:26:05 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
Добрый день, забыл ник! > мне почему-то кажется что тут банальный enum нужен:) Да, у нас так сделано. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:33:23 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
Вопрос, пожалуй, можно поставить так - "Можно-ли в джаве создать массив с сылками не в хип, а в статический контекст?". GKS_SamaraВы понимаете, что количество наследников нельзя предугадать? Мне не нужно предугадывать всех. Каких напишу в фигурных скобках - тех достаточно. Все классы пишу я. Не ищите проблему там, где её нет. GKS_SamaraКакая, вообще, цель всего этого? Создавать (и не только) разные подклассы в зависимости от данных взятых из БД. GKS_SamaraМне думается, у Вас ошибка где-то на предыдущем шаге. Посоветуйте существующие решение цель я написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:38:31 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
avp.mkВопрос, пожалуй, можно поставить так - "Можно-ли в джаве создать массив с сылками не в хип, а в статический контекст?" Объекты размещаются в куче и на стеке. Что за "статический контекст" ? Отказываейтесь от статики. Она в случае наследования точно не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:42:33 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
забыл никмне почему-то кажется что тут банальный enum нужен:) К enum'у можно обратиться по индексу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:43:10 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
avp.mkзабыл никмне почему-то кажется что тут банальный enum нужен:) К enum'у можно обратиться по индексу? Специально для тебя компиллятор любезно генерит авто-метод public static EnumClass[] values() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:46:53 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
avp.mkК enum'у можно обратиться по индексу? values() только зачем вам по индексу?? Это очень странное желание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:48:46 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, +1 ordinal использовать напрямую очень плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:53:16 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#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, 17:53:19 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
Объекты в стеке - круто. Тексты на вход вместо того чтобы перейти по индексу в массиве - тоже. Enum - подумаю, не нравиться что им нельзя расширить другой класс. Пока склоняюсь к мнению просто сделать простым (пустым) конструктор по-умолчанию и создавать при помощи него только объекты в массиве и параметризованный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 18:13:15 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
avp.mkПока склоняюсь к мнению просто сделать простым (пустым) конструктор по-умолчанию и создавать при помощи него только объекты в массиве и параметризованный... Передумал Большой Синий Китordinal использовать напрямую очень плохо. Можно узнать почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 21:37:46 |
|
||
|
Возможно сделать массив классов?
|
|||
|---|---|---|---|
|
#18+
avp.mk, Потому что все поломается при изменении порядка объявления значений енума. Здесь описано решение для данной проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 23:25:08 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=289&tid=2131772]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 313ms |
| total: | 457ms |

| 0 / 0 |
