2012-06-12 3 views
0

Я ищу способ написать код, который игнорируется компилятором GWT. Например, некоторые методы следует игнорировать, поскольку они используют классы, недоступные в GWT.Можно ли написать код, который игнорируется компилятором GWT?

Можно ли пометить эти методы с помощью некоторой магии @Attribute или удалить код во время компиляции? В любом случае код не будет доступен при запуске на платформе GWT, но было бы очень полезно иметь его там, когда этот код запускается/тестируется в JVM.

Я знаю, что могу написать несколько фиктивных классов (и на самом деле я делаю это уже). Тем не менее я ищу более простой способ. Кроме того, для некоторых классов я не могу создать dummys, поскольку GWT уже имеет такие классы, как System, но поддерживает только небольшой набор функциональных возможностей.

Спасибо!

+0

Ваш вопрос был дан ответ [здесь] (http://stackoverflow.com/questions/6066431/strategies-for-mixing-in-the-gwt -Совместим-и-несовместимый-источник). Нет такого атрибута, предоставленного GWT. –

+0

Теперь есть решение для этого (в GWT 2.6), аннотация: [GwtIncompatible] (http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/shared/GwtIncompatible.html). –

ответ

1

У меня есть несколько классов, как вы, например

private DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd"); 

класс SimpleDateFormat не класс GWT и подчеркнут красным цветом, а когда я pointit, он говорит: «java.text.DateFormat» класс отсутствует в JRE Emulation Library, поэтому он не может использоваться в коде клиента, однако мой пробный запуск без проблем. вот фотография моей проектной структуры и один из моих тестовых классов проектов. enter image description here

во всяком случае, все, что вы заявляете в gwt.xml как будет проверять классы в заявленных пакетах, чтобы иметь эмуляцию GWT, но тесты работают в среде виртуальной машины Java, так что вы не заботитесь о классах, которые не имеют эмуляцию GWT. но если вы используете вещи GWTTestcase, разные, поскольку GWTTestcase запускает браузер и помещает тесты в браузер окружения. Чтобы обойти эту проблему, используйте конструкцию ppt MVP. MVP1

MVP2 . Желаю вам удачи

2

Не на уровне метода. Вы можете отфильтровать определенные классы в пакете источника, хотя:

<source path="client"> 
    <exclude name="XMLNamespaceContext.java"/> 
    <exclude name="XMLUtils.java"/> 
    <!-- exclude test classes, they always end with Test.java --> 
    <exclude name="**/*Test.java" /> 
</source> 
Смежные вопросы