Когда вы говорите String.class
, вы просите RestTemplate предоставить вам результат в виде строки. Вместо этого вы можете выполнить одно из следующих действий:
class TokenHolder {
String token;
}
TokenHolder holder = restTemplate.getForObject(url, TokenHolder.class);
holder.getToken();
или
// this is necessary because of generic type erasure
private static final ParameterizedTypeReference<Map<String, String>> MAP_TYPE =
new ParameterizedTypeReference<Map<String, String>>() {};
Map<String, String> map = restTemplate.getForObject(url, MAP);
map.get("token");
«сильный тип» TokenHolder
обычно предпочтительнее. @Value
Lombok и совершенно новая функция Java Record могут помочь создать такие классы с небольшими шаблонами.