GWT использует генераторы кода с командой GWT.create() для создания реализаций. Это обеспечивает декларативный способ работы в GWT, но я не понимаю, почему это не делается с помощью процессоров аннотаций, как в большинстве java.эта статья — это то, о чем я подумал в оригинале. Похоже, это упростит сборку и позволит вам увидеть ошибки времени компиляции и будет намного более совместимо с обычным java. Это побочный вопрос, но я единственный, кто считает, что GWT должен поддерживать отражение. Я слышал, что это делает код медленнее, но все же. Разве это не стоит в некоторых случаях?
Почему GWT использует генераторы кода, а не процессоры аннотаций?
Ответы (1)
Вот почему GWT был создан еще до того, как в языке/платформе Java (Java 1.4) появились аннотации.
Однако новые разработки, как правило, склоняются к обработке аннотаций, и в конечном итоге она будет поддерживаться как часть перекомпиляции SuperDevMode (в настоящее время вам нужно запустить процессор аннотаций, а SDM выбирает -модифицированные- сгенерированные источники); одним из примеров является Dagger 2.
Однако я не думаю, что этот подход применим ко всем случаям. где генератор в настоящее время используется в GWT.
Что касается GWT.create()
, он по-прежнему будет необходим/полезен для случаев replace with отложенных привязок.
Что касается отражения, то речь идет не о «медленности», а о метаданных, которые необходимо встроить в сгенерированный код JS для поддержки отражения во время выполнения. Учитывая, что все известно во время компиляции, вряд ли есть необходимость в отражении во время выполнения; обычно вы можете использовать код, сгенерированный во время компиляции, вместо отражения во время выполнения. Так что нет, не стоит.