2010-02-18 2 views
3

ли Java ничего подобного любой из следующихJava возможности

  • макросов
  • способ перебора всех частных полей
  • что-то вроде Smalltalk символы-то есть что-то для быстрого сравнения статических строк?

примечание Я пытаюсь подражать перечисления для blackckbery (и немного беспокоится о скорости для простого string-> Int словаря) который я довольно уверен, не имеет их пожалуйста, постарайтесь не включать Код-просто ссылки Я хотел бы сам код.

Отражение кажется интересным, это сложно использовать просто? можете ли вы получить доступ к этим именам? можете ли вы использовать его с обычной программой blackbery java?

+0

Это странный вопрос, для чего вам нужны эти вещи? –

+0

см. Выше примечание –

+0

Не должно быть большой разницы в скорости между «HashMap » и «Enum», хотя «HashMap», вероятно, займет больше памяти. Вы профилировали? –

ответ

3
  • Что именно вы подразумеваете под макро? Если вы говорите о препроцессорных макросах, то такой вещи нет. Java не имеет препроцессора (но ничто не мешает вам использовать внешний в процессе сборки).
  • Reflection можно использовать для итерации по полям и методам класса, но это на самом деле не первый класс конструкции и предназначен для опережающего развития (обычно внутри библиотеки)
  • Некоторые использование символов Smalltalk отображающего довольно чисто на enums, другие нет. Обратите внимание, что enum - это в основном хороший синтаксический сахар для type-safe enum pattern, который также может быть реализован в пред-Java 5.
+0

есть макросы предварительной обработки –

3
  • Нет, нет макросов, и я не знаю, ничего подобного.
  • Вы можете использовать отражение для доступа к любому полю или перебора по ним.
  • Не уверен, но я так не думаю. Строки всегда являются объектами в Java, и их всегда нужно сравнивать, используя equals()
Смежные вопросы