2012-06-12 62 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仿真库中不存在,所以它不能在客户端代码中使用,但是我的测试运行没有问题。 这里是我的项目结构图和我的一个项目测试班。 enter image description here

无论如何,任何你在gwt.xml像 将检查申报包中的类有一个GWT仿真声明,但你的测试在JVM环境中运行,所以你不关心不类有GWT模拟。但是如果你使用GWTTestcase的话,GWTTestcase会触发一个浏览器并将测试置于环境浏览器之中,绕过这个问题使用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> 
相关问题