我在GWT1.5和GWT1.7应用程序中使用了相同的源代码。
我想知道有没有一种方法可以有条件地为一个或另一个版本编译部分java代码。
我知道有一种方法可以在模块XML文件中为小部件和浏览器执行此操作。
发布于 2009-08-12 11:05:19
解决方案非常简单。
String version = GWT.getVersion();
if (version.startsWith("1.5"))
{
// do something the 1.5.* way
}发布于 2009-08-11 19:54:57
如果你真的想这样做,我想最好的方法是使用Generator。
有了生成器,你就可以实现延迟绑定(有点像穷人的自省)。
要访问1.5或1.7代码,您必须在接口中定义通用应用程序接口,并在其上使用GWT.create来获得具体的实现。
发布于 2009-08-23 16:36:14
if (version.startsWith("1.5")) { //以1.5.*的方式做某事}
实际上是个不好的主意。理想情况下,您应该在这里使用绝对字符串值,因为GWT编译器将计算相等性,并从编译后的输出中修剪if条件中无法访问的代码。使用.startsWith意味着所有代码都将在最终的应用程序中结束。
不幸的是,GWT版本不是编译时属性。也许最好的方法是创建一个空的生成器实现,它只从模块中对"ClassName“的调用返回"ClassName15”或"ClassName17“。然后,您可以在编译时从生成器中调用About.version(),并找出编译时的版本。
https://stackoverflow.com/questions/1258933
复制相似问题