Java 通用方法,RESTful应用程序

Java 通用方法,RESTful应用程序,java,generics,rest,Java,Generics,Rest,我在java项目中使用RESTful应用程序。通常在我的单元测试类中,我使用如下方法: public Employee getEmployeeByEmail(String email) { ClientResponse clientResponse = webResource.path(beginPath + "getByEmail/" + email).get( ClientResponse.class); Employee employee = nu

我在java项目中使用RESTful应用程序。通常在我的单元测试类中,我使用如下方法:

public Employee getEmployeeByEmail(String email) {
    ClientResponse clientResponse = webResource.path(beginPath + "getByEmail/" + email).get(
            ClientResponse.class);

    Employee employee = null;
    if (200 == clientResponse.getStatus()) {
        employee = clientResponse.getEntity(Employee.class);
    }

    return employee;
}
。。。但我必须在几乎12个不同的类中使用类似的方法。这就是我决定要做的:

public class TestManager<T> {

private WebResource webResource;
private String beginPath;
private Class<T> clazz;

public TestManager(WebResource webResource, String beginPath, Class<T> clazz) {
    this.webResource = webResource;
    this.beginPath = beginPath;
    this.clazz = clazz;
}

public boolean objectExists(String methodPath, String uniqueFieldName, String uniqueField) {
    boolean check = false;
    ClientResponse clientResponse = webResource.path(beginPath + methodPath + "/" + uniqueField).get(
                ClientResponse.class);
    JSONObject jsonObject = clientResponse.getEntity(JSONObject.class);

    if (200 == clientResponse.getStatus() && !jsonObject.isNull(uniqueFieldName)) {
        check = true;
    }

    return check;
}

public T getObjectById(String methodPath, long id) {
    ClientResponse clientResponse = webResource.path(beginPath + methodPath + "/" + id).get(
            ClientResponse.class);
    T object = null;
    if (200 == clientResponse.getStatus() && !clientResponse.getEntity(JSONObject.class).isNull("id")) {
        object = clientResponse.getEntity(clazz);
    }

    return object;
}
看来我做不到这一点:

object = clientResponse.getEntity(clazz);
但我不知道如何修复它。对不起,我的英语是:P

编辑: 我在用运动衫

编辑2: 解决方案:
问题是我用了两次getEntity方法。。。如果我只用一次。。。它是有效的。。。该死的

这是一个紧急呼叫。尝试从浏览器中调用它


如果出现同样的错误,那么您的客户机没有问题。

如果您只是在单元测试方面遇到问题,那么您可能需要查看Jersey测试框架。”如果上面有jersey文档的链接,google可以为您提供更多教程。

从浏览器调用可以,restful方法也可以。但我需要单元测试,当我以第一个代码示例那样的正常方式进行测试时,单元测试可以工作,但当我尝试clientResponse.getEntityclazz;时,单元测试不起作用;。我认为泛型类型有一个问题。。。
object = clientResponse.getEntity(clazz);