Java 解决方法:没有类型可用的源您是否忘记继承所需的模块?
在共享包中,我有一个类,它只使用服务器包中的一个类,只有当它在服务器上时,它才是GWT的independent,并且我已经使它成为瞬态的Java 解决方法:没有类型可用的源您是否忘记继承所需的模块?,java,gwt,Java,Gwt,在共享包中,我有一个类,它只使用服务器包中的一个类,只有当它在服务器上时,它才是GWT的independent,并且我已经使它成为瞬态的 if (!GWT.isClient()) ServerLogger loggerServer; 但它不会编译,因为它是共享的。。我可以在这里搜索吗?我只是想让GoogleCompile正常工作,它不应该具有服务器记录器的功能。 有解决办法吗 如何编写我自己的整体为空的模块,因为我只想停止编译器出错。GWT仍在尝试编译此代码。您需要在编译时使用和交换所
if (!GWT.isClient())
ServerLogger loggerServer;
但它不会编译,因为它是共享的。。我可以在这里搜索吗?我只是想让GoogleCompile正常工作,它不应该具有服务器记录器的功能。
有解决办法吗
如何编写我自己的整体为空的模块,因为我只想停止编译器出错。GWT仍在尝试编译此代码。您需要在编译时使用和交换所需的实现,这样GWT就不会试图编译此特定于服务器的代码 或者将
ServerLogger
实现作为此共享类的接口依赖项,并在服务器/客户端中传递正确的实现:
// in your shared package
public class SharedClass {
private final LoggingClass logging;
public SharedClass(LoggingClass logging) {
this.logging = logging;
}
public void log(String msg) {
logging.log(msg);
}
}
public interface LoggingClass {
public void log(String msg);
}
// in your client package
public class ClientLogging implements LoggingClass {
public void log(String msg) { GWT.log(msg); }
}
// in your server package
public class ServerLogging implements LoggingClass {
public void log(String msg) { ServerLogger.log(msg); }
}