Skip to content

Commit 84d3b6a

Browse files
caseyscarboroughsnicoll
authored andcommitted
Remove unchecked casts
Closes spring-projectsgh-5975
1 parent 4023637 commit 84d3b6a

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

spring-boot/src/main/java/org/springframework/boot/json/GsonJsonParser.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import com.google.gson.Gson;
2323
import com.google.gson.GsonBuilder;
24+
import com.google.gson.reflect.TypeToken;
2425

2526
/**
2627
* Thin wrapper to adapt {@link Gson} to a {@link JsonParser}.
@@ -35,24 +36,24 @@ public class GsonJsonParser implements JsonParser {
3536
private Gson gson = new GsonBuilder().create();
3637

3738
@Override
38-
@SuppressWarnings("unchecked")
3939
public Map<String, Object> parseMap(String json) {
4040
if (json != null) {
4141
json = json.trim();
4242
if (json.startsWith("{")) {
43-
return this.gson.fromJson(json, Map.class);
43+
TypeToken<Map<String, Object>> type = new TypeToken<Map<String, Object>>() { };
44+
return this.gson.fromJson(json, type.getType());
4445
}
4546
}
4647
throw new IllegalArgumentException("Cannot parse JSON");
4748
}
4849

4950
@Override
50-
@SuppressWarnings("unchecked")
5151
public List<Object> parseList(String json) {
5252
if (json != null) {
5353
json = json.trim();
5454
if (json.startsWith("[")) {
55-
return this.gson.fromJson(json, List.class);
55+
TypeToken<List<Object>> type = new TypeToken<List<Object>>() { };
56+
return this.gson.fromJson(json, type.getType());
5657
}
5758
}
5859
throw new IllegalArgumentException("Cannot parse JSON");

spring-boot/src/main/java/org/springframework/boot/json/JacksonJsonParser.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.List;
2020
import java.util.Map;
2121

22+
import com.fasterxml.jackson.core.type.TypeReference;
2223
import com.fasterxml.jackson.databind.ObjectMapper;
2324

2425
/**
@@ -30,21 +31,21 @@
3031
public class JacksonJsonParser implements JsonParser {
3132

3233
@Override
33-
@SuppressWarnings("unchecked")
3434
public Map<String, Object> parseMap(String json) {
3535
try {
36-
return new ObjectMapper().readValue(json, Map.class);
36+
TypeReference<Map<String, Object>> type = new TypeReference<Map<String, Object>>() { };
37+
return new ObjectMapper().readValue(json, type);
3738
}
3839
catch (Exception ex) {
3940
throw new IllegalArgumentException("Cannot parse JSON", ex);
4041
}
4142
}
4243

4344
@Override
44-
@SuppressWarnings("unchecked")
4545
public List<Object> parseList(String json) {
4646
try {
47-
return new ObjectMapper().readValue(json, List.class);
47+
TypeReference<List<Object>> type = new TypeReference<List<Object>>() { };
48+
return new ObjectMapper().readValue(json, type);
4849
}
4950
catch (Exception ex) {
5051
throw new IllegalArgumentException("Cannot parse JSON", ex);

0 commit comments

Comments
 (0)