Olá Pessoal !
Gostaria de criar um get () genérico para todos os tipos de URI e VO no meu RestService.
Mas eu não sei como definir (e usá-lo) um parâmetro para criar um get genérico (uri, className). Eu tentei isso:
@Service
public class RestService {
private final RestTemplate restTemplate;
public RestService(RestTemplateBuilder restTemplateBuilder) {
// set connection and read timeouts
this.restTemplate = restTemplateBuilder
.setConnectTimeout(Duration.ofSeconds(500))
.setReadTimeout(Duration.ofSeconds(500))
.build();
}
public Object[] get(String uri, Class[] className){
return this.restTemplate.getForObject(uri, className);
}
}
Eu tentei assim:
String uri = "https://jsonplaceholder.typicode.com/posts";
for (Post post : restService.get(uri, Post.class)) {
System.out.println(post.getTitle());
}
E tomei este erro:
(argument mismatch; java.lang.Class[] cannot be converted to java.lang.Class<T>))
Tentei assim também:
public Object get(URI uri, Class<?> className){
return restTemplate.getForObject(uri, className);
}
Entretanto, não fui capaz de iterar o resultado
Então, existe uma maneira de definir um método genérico para um Service?
Desde já,
grato