gpt4 book ai didi

java - Class 不接受 ParameterizedTypeReference

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:46 25 4
gpt4 key购买 nike

我正在将现有代码迁移到父类(super class)/子类情况。见下文。

家长类里面的方法:

    public <T> ResponseEntity<T> makeRequest(HttpMethod method, String endpoint, HttpEntity<?> request, Class<T> responseType) {
//DO stuff here
}

在子类中调用了上面的 makeRequest()。

    ParameterizedTypeReference<List<MyOtherClass>> typeRef = new ParameterizedTypeReference<List<MyOtherClass>>() {};
ResponseEntity<List<MyOtherClass>> response = makeRequest(HttpMethod.GET,uriComponents.toUriString(), request, typeRef);

但是最后一个参数似乎导致签名不匹配。 Eclipse 是这么说的。

“ParentWS 类型中的方法 makeRequest(HttpMethod, String, HttpEntity, Class) 不适用于参数 (HttpMethod, String, HttpEntity, ParameterizedTypeReference>)”

我不明白为什么,父方法签名表示任何类型的任何类。所有其他子类都只是使用 String.class 调用父方法,如下所示。

response = makeRequest(HttpMethod.GET, healthCheckUrlEndpoint, request, String.class);

但是为什么 ParameterizedTypeReference>() {} 会导致问题呢?我以前从未使用过 ParameterizedTypeReference,它对我来说是全新的。请指教。

最佳答案

据我了解,第四个参数是Class类型。尝试typeRef.getClass()

关于java - Class<T> 不接受 ParameterizedTypeReference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57600978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com