在GWT项目中继承外部java源代码

时间:2012-10-02 10:07:01

标签: java gwt inheritance

我有一个在服务器端使用的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中的类路径中,但我不知道如何或在哪里。

2 个答案:

答案 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'/>