5

我有一个在服务器端使用的 ENUM。我也希望能够在客户端(GWT)上使用这个枚举。

这是结构:

se.mycompany.core
se.mycompany.core.TheEnum <-- this Enum.

se.mycomapny.web.gwtproject <-- The GWT project.
se.mycomapny.web.gwtproject.client

我试图添加

<inherits name="se.mycompany.core.TheEnum"/>

到我的 gwtproject.gwt.xml 文件。但我收到以下错误消息:

[错误] 无法在您的类路径中找到“se/mycompany/core/TheEnum.gwt.xml”;可能是拼写错误,或者您忘记包含源的类路径条目?

我尝试使用以下上下文将文件 TheEnum.gwt.xml 添加到“se/mycompany/core/”。

<module>
  <inherits name='com.google.gwt.user.User'/>
  <source path="TheEnum"></source>
</module> 

但它仍然抱怨同样的事情。

我猜我需要以某种方式将 se.mycompany.core.TheEnum 添加到 build.xml 中的类路径中,但我不知道如何或在哪里。

4

2 回答 2

6

“继承”标签用于导入其他模块,而不是单个类。您可以通过在包下创建一个简单的 GWT 模块来实现您想要的core,然后在现有模块中继承该模块:

Core.gwt.xml在 package 下创建一个名为的文件se.mycompany.core,其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<module>
    <source path="" includes="TheEnum.java"/>    
</module>

然后在您现有的模块中添加:

<inherits name='se.mycompany.core.Core'/>
于 2012-10-02T15:18:38.523 回答
0

最好在客户端包中添加枚举,即“se.mycomapny.web.gwtproject.client”。从服务器端,您可以使用客户端包中的此枚举。

仍然需要它在服务器端,然后创建一个包“se.mycompany.core.shared”,在包“se.mycompany.core”中创建Core.gwt.xml。

核心.gwt.xml:

<module>
<source path="shared"/>
</module>

现在在包“se.mycompany.core.shared”中创建 TheEnum.java。在你的主 gwt.xml 文件中写下一行,

<inherits name='se.mycompany.core.Core'/>
于 2012-10-03T13:36:01.267 回答