Вопрос

Я только что вернулся к разработке MIDP после примерно 4 лет работы на .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;
    }

}

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top