2015-01-15 2 views
2

GWT использует генераторы кода с помощью команды GWT.create() для генерации реализаций. Это обеспечивает декларативный способ делать что-то в GWT, но я не понимаю, почему это не делается с обработчиками аннотаций, как в большинстве java. this article - это то, что оригинал заставлял меня думать об этом. Похоже, что это упростит сборку и позволит вам видеть ошибки времени компиляции и быть намного более совместимыми с обычной java. Это побочный вопрос, но я единственный, кто думает, что GWT должен поддерживать рефлексию. Я слышал, что это делает код медленнее, но все же. Разве это не стоит в некоторых случаях?Почему GWT использует генераторы кода, а не обработчики аннотаций?

ответ

3

GWT был создан до того, как аннотации даже существовали на языке Java/платформе (Java 1.4). Вот почему.

Новые разработки, как правило, ориентированы на обработку аннотаций, и в конечном итоге они будут поддерживаться как часть перекомпиляции SuperDevMode (в настоящее время вы должны запустить свой процессор аннотаций и выбрать SDM-генерируемые источники); один пример: Dagger 2.
Я, однако, не думаю, что этот подход применим ко всем случаям, когда генератор в настоящее время используется в GWT.

Что касается GWT.create(), он все равно будет нужен/полезный для заменить случаев отсроченных привязок.


Что касается отражения, речь идет не о «медлительности», речь идет о метаданных, которые должны были бы быть включены в сгенерированный код JS для поддержки выполнения отражение. Учитывая, что все известно во время компиляции, вряд ли нужно отражать во время выполнения; вы обычно можете использовать код, сгенерированный во время компиляции, в качестве замены для отображения времени выполнения. Так что нет, это не стоит.

+0

Аннотации поддерживались с версии Java 1.5 в 2004 году, первый GWT RC был выпущен в 2006 году. Я не могу найти никакой информации, когда проект действительно начался. Но даже если бы аннотации существовали тогда, я сомневаюсь, что они были бы использованы в любом случае. Отсутствие поддержки инструментария и риск того, что новая технология не будет успешно принята и широко распространена. – Kapep

+0

Ах да, хотя GWT не поддерживала источники Java 5 до версии 1.5, выпущенной в 2008 году. –

Смежные вопросы