是否可以编写GWT编译器忽略的代码?

时间:2012-06-12 22:39:09

标签: class gwt ignore

我正在寻找一种编写GWT编译器忽略的代码的方法。例如,某些方法应该被忽略,因为它们使用GWT中不可用的类。

是否可以使用某些@Attribute魔术标记这些方法或在编译期间删除代码?在GWT平台上运行时,无论如何都不会访问代码,但是当在JVM中运行此代码/ testes时,将代码放在那里非常有用。

我知道我可以编写一些虚拟类(实际上我已经这样做了)。我仍在寻找一种更简单的方法。此外,对于某些类,我无法创建dummys,因为GWT已经有像System这样的类,但只支持一小部分功能。

谢谢!

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

我有一些像你这样的课程,例如

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

SimpleDateFormat类不是GWT类,它用红色加下划线,当我指向时,它说:JRE仿真库中没有类'java.text.DateFormat',所以它不能用在客户端代码中,但是我的测试运行没有问题。 这是我的项目结构和我的一个项目测试类的图片。enter image description here

无论如何,你在gwt.xml中声明的任何东西都喜欢 将检查声明的包中的类以进行GWT仿真,但是您的测试在JVM环境中运行,因此您不关心没有GWT仿真的类。但是如果你使用GWTTestcase的东西有所不同,因为GWTTestcase会触发浏览器并将测试放在环境浏览器下。绕过这个问题使用MVP模式设计。 MVP1

MVP2 。祝你好运