相关疑难解决方法(0)

在泛型参数的泛型方法中使用Spring RestTemplate

要使用Spring RestTemplate的泛型类型,我们需要使用ParameterizedTypeReference(无法获得通用的ResponseEntity <T>,其中T是泛型类"SomeClass <SomeGenericType>")

假设我有一些课

public class MyClass {
    int users[];

    public int[] getUsers() { return users; }
    public void setUsers(int[] users) {this.users = users;}
}
Run Code Online (Sandbox Code Playgroud)

还有一些包装类

public class ResponseWrapper <T> {
    T response;

    public T getResponse () { return response; }
    public void setResponse(T response) {this.response = response;}
}
Run Code Online (Sandbox Code Playgroud)

所以如果我想做这样的事情,一切都好.

public ResponseWrapper<MyClass> makeRequest(URI uri) {
    ResponseEntity<ResponseWrapper<MyClass>> response = template.exchange(
        uri,
        HttpMethod.POST,
        null,
        new ParameterizedTypeReference<ResponseWrapper<MyClass>>() {});
    return response;
}
Run Code Online (Sandbox Code Playgroud)

但是当我试图创建上述方法的通用变体时......

public <T> ResponseWrapper<T> makeRequest(URI uri, Class<T> …
Run Code Online (Sandbox Code Playgroud)

java generics spring jackson resttemplate

53
推荐指数
5
解决办法
7万
查看次数

标签 统计

generics ×1

jackson ×1

java ×1

resttemplate ×1

spring ×1