GWT.create(MyClass.class) 给出 MyClass 必须是 class 的错误

GWT.create(MyClass.class) gives Error that MyClass must be a class

我正在尝试从我的 EntryPoint Class 调用 RemoteService。 但是,我在 GWT.create() 中收到错误。我正在为我的服务传递客户端接口。我得到的错误是它必须是 class.

19: private LoginServiceAsync loginServiceAsync = GWT.create(LoginService.class);

[错误] 第 19 行:重新绑定结果 'com.example.client.LoginService' 必须是 class

这是我在客户端文件夹中的 LoginService 代码:

package com.example.client;

import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("LoginService")
public interface LoginService  {
    boolean signUpUser(String name, String email, String password);
}

谁能告诉我我做错了什么?提前谢谢。

问题是我的接口没有扩展 RemoteService。

package com.example.client;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("LoginService")
public interface LoginService extends RemoteService {
    boolean signUpUser(String name, String email, String password);
}

解决了我的问题, 我还必须在 LoginServiceAsync 中更改它:

void signUpUser(String name, String email, String password,com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Boolean> arg4);

不确定为什么会这样,谁能解释一下?谢谢

GWT.create(MyClass.class) 首先查找替换规则或生成规则。如果 GWT 没有找到规则,它将执行 new MyClass().

因为您没有扩展 RemoteService,GWT 找不到 generate-with-rule 并尝试 new.

这就是您收到此错误的原因。