Перечисления Java в мобильном приложении MIDP 2
-
23-08-2019 - |
Вопрос
Я только что вернулся к разработке 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.Однако обратите внимание, что использование этих инструментов значительно усложнит ваш процесс сборки, в то время как упомянутое вами решение - нет.