java - Java 中的泛型方法返回参数

标签 java class generics

所以我有这两种方法:

private List<Song> toSongList(String json) {
    ObjectMapper mapper = new ObjectMapper();
    List<Song> list = null;
        list = mapper.readValue(json, mapper.getTypeFactory()
                .constructCollectionType(List.class, Song.class));
    return list;
}

private List<Interpreter> toInterpreterList(String json) {
    ObjectMapper mapper = new ObjectMapper();
    List<Interpreter> list = null;
        list = mapper.readValue(json, mapper.getTypeFactory()
                .constructCollectionType(List.class, Interpreter.class));
    return list;
}

我调用:

List<Song>songs = toSongList(jsonS);
List<Interpreter>interpreter = toInterpreterList(jsonI);

但是我想要一个单一的方法,我可以这样调用它:

List<Song>songs = toList(Song.class, jsonS);
List<Interpreter>interpreter = toList(Interpreter.class, jsonI);

我怎样才能做到这一点?

最佳答案

这应该有效:

private <T> List<T> toList(Class<T> clazz, String json) {
    ObjectMapper mapper = new ObjectMapper();
    List<T> list = mapper.readValue(json, mapper.getTypeFactory()
                .constructCollectionType(List.class, clazz));
    return list;
}

关于java - Java 中的泛型方法返回参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014006/

相关文章:

java - 给定一个 DateTime 对象,如何获取 Joda Time 中的 DateTimeZone?

java - 搜索数据库未按 JSP 中的预期显示

java - 查找字符串中多次出现的单词并存储各自的起始索引

c++ - 在该类中创建类数组

java - 使具有相同删除二进制文件的通用返回类型兼容吗?

java - 如何在 java 中替换许多 if 语句?

c++ - 检查传递给方法的对象是否为 "this"

java - 当定义为泛型类参数时,如何获取 Enum 的 valueOf 和值并调用其实现的接口(interface)上的方法

java - 递归通用和流畅的接口(interface)

Java:类和扩展类