Перечисления Java в мобильном приложении MIDP 2 - PullRequest
4 голосов
/ 22 мая 2009

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

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;
    }

}

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

1 Ответ

3 голосов
/ 04 августа 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...