GWT использует генераторы кода с помощью команды GWT.create() для генерации реализаций. Это обеспечивает декларативный способ делать что-то в GWT, но я не понимаю, почему это не делается с обработчиками аннотаций, как в большинстве java. this article - это то, что оригинал заставлял меня думать об этом. Похоже, что это упростит сборку и позволит вам видеть ошибки времени компиляции и быть намного более совместимыми с обычной java. Это побочный вопрос, но я единственный, кто думает, что GWT должен поддерживать рефлексию. Я слышал, что это делает код медленнее, но все же. Разве это не стоит в некоторых случаях?Почему GWT использует генераторы кода, а не обработчики аннотаций?
ответ
GWT был создан до того, как аннотации даже существовали на языке Java/платформе (Java 1.4). Вот почему.
Новые разработки, как правило, ориентированы на обработку аннотаций, и в конечном итоге они будут поддерживаться как часть перекомпиляции SuperDevMode (в настоящее время вы должны запустить свой процессор аннотаций и выбрать SDM-генерируемые источники); один пример: Dagger 2.
Я, однако, не думаю, что этот подход применим ко всем случаям, когда генератор в настоящее время используется в GWT.
Что касается GWT.create()
, он все равно будет нужен/полезный для заменить случаев отсроченных привязок.
Что касается отражения, речь идет не о «медлительности», речь идет о метаданных, которые должны были бы быть включены в сгенерированный код JS для поддержки выполнения отражение. Учитывая, что все известно во время компиляции, вряд ли нужно отражать во время выполнения; вы обычно можете использовать код, сгенерированный во время компиляции, в качестве замены для отображения времени выполнения. Так что нет, это не стоит.
- 1. Почему GWT не использует gwt-dispatch?
- 2. Почему PyYAML использует генераторы для создания объектов?
- 3. GWT Mvp и обработчики
- 4. Что такое Big-O кода, который использует генераторы случайных чисел?
- 5. Почему генераторы не хорошо переносятся?
- 6. Почему генераторы быстрее?
- 7. генераторы кода для .Net
- 8. Рекомендуемые генераторы кода VB.NET
- 9. Многоразовый интерфейс, который использует генераторы
- 10. Генераторы кода карусели бутстрапа
- 11. Генераторы кода WPF/XAML
- 12. Генераторы кода создания NSManagedObjectModel
- 13. Почему генераторы Python не типа?
- 14. Обработчики холста и клика (GWT)
- 15. Почему iosched использует getFragmentManager, а не getSupportFragmentManager?
- 16. Почему OpenGL использует float, а не double?
- 17. Почему какао использует делегатов, а не наследование?
- 18. rails3-генераторы не добавляет генераторы
- 19. GWT: onBack and onForward «обработчики истории»
- 20. Являются ли генераторы кода плохими?
- 21. GWT FocusPanel, клавиша табуляции и обработчики фокуса
- 22. Как вызвать генераторы из кода?
- 23. Использует обработчики событий как «многоразовый код»?
- 24. Какая библиотека JavaScript использует GWT?
- 25. Почему @OneToMany аннотаций не работает
- 26. Как использовать обработчики касания? (поддерживает ли GWT?)
- 27. Почему эти рекурсивные генераторы скалячек не эквивалентны?
- 28. GWT - Cant использует составные виджеты clickhandlers
- 29. Почему этот пример кода использует process.nextTick?
- 30. Почему мои обработчики Ansible не стреляют?
Аннотации поддерживались с версии Java 1.5 в 2004 году, первый GWT RC был выпущен в 2006 году. Я не могу найти никакой информации, когда проект действительно начался. Но даже если бы аннотации существовали тогда, я сомневаюсь, что они были бы использованы в любом случае. Отсутствие поддержки инструментария и риск того, что новая технология не будет успешно принята и широко распространена. – Kapep
Ах да, хотя GWT не поддерживала источники Java 5 до версии 1.5, выпущенной в 2008 году. –