i have below model classes for example
class A{}
class B{}
Main or calling class
public static void main(String[] args) throws IOException{
String aJson = "/tmp/a.json";
List<A> aList = readAJsonAsList(aJson);
String bJson = "/tmp/b.json";
List<B> bList = readBJsonAsList(bJson);
}
Now I am reading json files analogous to models A and B using jackson.
// method for A
private static List<A> readAJsonAsList(String jsonAFile) throws IOException {
ObjectMapper omA = new ObjectMapper();
List<A> aList = omA.readValue(new File(jsonAFile), new TypeReference<ArrayList<A>>() {
});
return aList;
}
// method for B
private static List<B> readBJsonAsList(String jsonBFile) throws IOException {
ObjectMapper omB = new ObjectMapper();
List<B> bList = omB.readValue(new File(jsonBFile), new TypeReference<ArrayList<B>>() {
});
return bList;
}
how can I make one generic java method from above two methods?
Note: I have tried below but does not work
private static <T> List<T> readJsonAsList(String jsonFile) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
List<T> list = objectMapper.readValue(new File(jsonFile), new TypeReference<ArrayList<T>>() {
});
return list;
}