我有一个在服务器端使用的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中的类路径中,但我不知道如何或在哪里。
答案 0 :(得分:6)
“inherits”标签用于导入其他模块,而不是单个类。您可以通过在core
包下创建一个简单的GWT模块来实现您想要的,然后在现有模块中继承该模块:
在包Core.gwt.xml
下创建名为se.mycompany.core
的文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<module>
<source path="" includes="TheEnum.java"/>
</module>
然后在现有模块中添加:
<inherits name='se.mycompany.core.Core'/>
答案 1 :(得分:0)
最好在客户端软件包中添加枚举,即&#34; se.mycomapny.web.gwtproject.client&#34;。从服务器端,您可以在客户端软件包中使用此枚举。
然后你只想在服务器端创建一个软件包&#34; se.mycompany.core.shared&#34 ;,在软件包中创建Core.gwt.xml&#34; se.mycompany.core&#34 ;
Core.gwt.xml:
<module>
<source path="shared"/>
</module>
现在在包&#34; se.mycompany.core.shared&#34;中创建TheEnum.java。并在你的主要gwt.xml文件中写下行,
<inherits name='se.mycompany.core.Core'/>