GWT условная компиляция - PullRequest
       4

GWT условная компиляция

1 голос
/ 11 августа 2009

Я использую один и тот же исходный код для приложений GWT 1.5 и GWT 1.7.

Мне интересно, есть ли способ условно скомпилировать части кода Java для одной или другой версии.

Я знаю, что есть способ сделать это для виджетов и браузеров в XML-файле модуля.

Ответы [ 3 ]

1 голос
/ 12 августа 2009

Решение очень простое.

String version = GWT.getVersion();
if (version.startsWith("1.5"))
{
  // do something the 1.5.* way
}
0 голосов
/ 23 августа 2009

if (version.startsWith ("1.5")) { // сделать что-то 1,5. * способ }

На самом деле это плохая идея. В идеале вы должны использовать абсолютные строковые значения здесь, потому что компилятор GWT будет оценивать равенство и обрезать недостижимый код внутри условия if из скомпилированного вывода. Использование .startsWith означает, что весь код окажется в конечном приложении.

К сожалению, версия GWT не является свойством времени компиляции. Возможно, лучший способ сделать это - создать пустую реализацию Generator, которая просто возвращает «ClassName15» или «ClassName17» из вызова в вашем модуле для «ClassName». Затем вы можете во время компиляции вызвать About.version () из генератора и выяснить, какая версия находится во время компиляции.

0 голосов
/ 11 августа 2009

Если вы действительно хотите это сделать, я думаю, что подход будет использовать Генератор.

С генератором у вас может быть отложенное связывание (немного самоанализ бедного человека).

Чтобы получить доступ к коду 1.5 или 1.7, вам нужно определить универсальный API в интерфейсе и использовать GWT.create для него, чтобы получить конкретную реализацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...