首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT条件编译

GWT条件编译
EN

Stack Overflow用户
提问于 2009-08-11 07:45:39
回答 3查看 1K关注 0票数 1

我在GWT1.5和GWT1.7应用程序中使用了相同的源代码。

我想知道有没有一种方法可以有条件地为一个或另一个版本编译部分java代码。

我知道有一种方法可以在模块XML文件中为小部件和浏览器执行此操作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-12 11:05:19

解决方案非常简单。

代码语言:javascript
复制
String version = GWT.getVersion();
if (version.startsWith("1.5"))
{
  // do something the 1.5.* way
}
票数 1
EN

Stack Overflow用户

发布于 2009-08-11 19:54:57

如果你真的想这样做,我想最好的方法是使用Generator。

有了生成器,你就可以实现延迟绑定(有点像穷人的自省)。

要访问1.5或1.7代码,您必须在接口中定义通用应用程序接口,并在其上使用GWT.create来获得具体的实现。

票数 0
EN

Stack Overflow用户

发布于 2009-08-23 16:36:14

if (version.startsWith("1.5")) { //以1.5.*的方式做某事}

实际上是个不好的主意。理想情况下,您应该在这里使用绝对字符串值,因为GWT编译器将计算相等性,并从编译后的输出中修剪if条件中无法访问的代码。使用.startsWith意味着所有代码都将在最终的应用程序中结束。

不幸的是,GWT版本不是编译时属性。也许最好的方法是创建一个空的生成器实现,它只从模块中对"ClassName“的调用返回"ClassName15”或"ClassName17“。然后,您可以在编译时从生成器中调用About.version(),并找出编译时的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1258933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档