Перечисления Java в мобильном приложении MIDP 2

Я только что вернулся к разработке MIDP после четырех лет работы с .NET 2 и Java 5 и 6. За это время мне очень понравилось использовать перечисления.

Enum - это языковая функция, которая позволяет разработчику больше доверять некоторым частям своего кода, особенно для возможности избежать или обнаружить ошибки раньше (во время компиляции). Некоторые другие преимущества можно найти здесь: http: // java.sun.com/j2se/1.5.0/docs/guide/language/enums.html

Мне показалось странным, что я не могу найти их в MIDP 2.0. У меня такое сообщение об ошибке:

«Тип« enum »не должен использоваться в качестве идентификатора, поскольку это зарезервированное ключевое слово из уровня источника 1.5»

Некоторое время назад у меня был опыт работы с Java 1.4, но я этого не помнил. Конечно, есть некоторые особенности новых версий ваших языков высокого уровня, которые вы можете принять как должное ...

В любом случае, вот хорошая рекомендация, что делать без них (если вы разрабатываете MIDP или имеете дело с кодом до Java 5): http: // www.javacamp.org/designPattern/enum.html

Подводя итоги (подробности и хорошее объяснение см. По предыдущей ссылке. Большое спасибо автору оригинала):

//The typesafe enum pattern
public class Suit {
    private final String name;

    public static final Suit CLUBS =new Suit("clubs");
    public static final Suit DIAMONDS =new Suit("diamonds");
    public static final Suit HEARTS =new Suit("hearts");
    public static final Suit SPADES =new Suit("spades");    

    private Suit(String name){
        this.name =name;
    }
    public String toString(){
        return name;
    }

}

Есть ли у вас другие подходы к этому вопросу?


person ptdev    schedule 22.05.2009    source источник
comment
Подход, который я использовал, размещен на этой [ссылка - альтернатива enum в Java 1.4] [1] [1]: stackoverflow.com / a / 15230142/2116798   -  person bhavik shah    schedule 05.03.2013


Ответы (1)


Проблема с MIDP заключается в том, что он застрял на уровне языка Java 1.2 (некоторые говорят, что это 1.3 или 1.4, но дело не в этом), а перечисления были введены в 1.5. Ваш шаблон - это шаг в правильном направлении, но в нем отсутствуют некоторые особенности «настоящих» перечислений, например, присвоение порядкового номера каждой константе.

Вы можете столкнуться с аналогичными проблемами с универсальными шаблонами, аннотациями и т. Д., Которые также были представлены в 1.5. Существуют инструменты для преобразования Java 1.5 обратно в 1.2, некоторые из них перечислены здесь. Таким образом, вы должны иметь возможность кодировать в версии 1.5 и работать на MIDP. Однако обратите внимание, что использование этих инструментов значительно усложнит процесс сборки, в то время как упомянутое вами решение - нет.

person Lena Schimmel    schedule 03.08.2009