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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> enum своими руками 
:(
    Опции темы
rapik
Дата 9.9.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Столкнулся с проблемой - в Java 1.4 нет enum. 

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

Из плюсов я заметил возможность удобно использовать toString() и невозможность присваивать неразрешённые значения (с числовыми константами такое проходит).

Было (>=1.5):
Код

public enum DBType
  {
    ORACLE("Oracle"),
   
    MAX_DB("Max DB");

    private String name;

    private DBType(String pName)
      {
        name = pName;
      }
    
    public String toString()
      {
        return name;
      }
  }

Стало (>=1.3):
Код

public final class DBType
  {
    public static final DBType ORACLE = new DBType("Oracle");

    public static final DBType MAX_DB = new DBType("Max DB");

    private String             name;

    private DBType(String pName)
      {
        name = pName;
      }

    public String toString()
      {
        return name;
      }
  }

PM MAIL   Вверх
AntonSaburov
Дата 9.9.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Ну развивается язык - это хорошо. Тем более, что 1.4 наверно надо вытеснять из своего репертуара smile
PM MAIL WWW ICQ   Вверх
AndrewMormysh
Дата 9.9.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Может я говорю глупость.. но зачем изобретать велосипед? - возьми готовый класс java.lang.Enum из jdk 1.5 и добавь себе в проект smile
PM MAIL   Вверх
rapik
Дата 9.9.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(AndrewMormysh @ 9.9.2008,  15:37)
возьми готовый класс java.lang.Enum из jdk 1.5 и добавь себе в проект smile

Попробовал, не вышло - типовые параметры только с версии 1.5. 

К тому же не очень понял, как потом декларировать значения. 

PM MAIL   Вверх
AndrewMormysh
Дата 9.9.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Довольно любопытная запись в блоге: Enum
PM MAIL   Вверх
LSD
Дата 10.9.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



У Jakarta Commons Lang есть уже готовые классы для реализации своих enum-ов. 

Хотя при желании Enum из 1.5 переносится в 1.4. Надо:
- скомпилировать свои классы компилятором из 1.5 с параметром -target jsr14 (возможно еще -source придется указать)
- аналогично скомпилировать класс Enum и упаковать в jar
- положить jar-ник с скомпилированным Enum-ом в <JRE14_HOME>\lib\endorsed
аналогично можно использовать генерики, автобоксинг и foreach циклы (для foreach нужно скомпилировать интерфейс Iteratable).


--------------------
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.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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