java - 如何使对象返回通用

标签 java json generics

我正在查看谷歌提供的以下 Gson 库。在我关注的教程中,我发现了以下代码片段;

public class JsonToJava {

    public static void main(String[] args) throws IOException {
        try(Reader reader = new InputStreamReader(JsonToJava.class.getResourceAsStream("/Server1.json"), "UTF-8")){
            Gson gson = new GsonBuilder().create();
            Person p = gson.fromJson(reader, Person.class);
            System.out.println(p);
        }
    }
}

是否可以使这个通用,例如,如果你有以下参数

public Object getObjectFromJSONString(String jsonString, Class classType){

然后我们知道类类型,是否可以返回任何对象类型,或者我是否必须有单独的方法,convertJSONToClassA、convertJSONToClassB、convertJSONToClassC 等等?

最佳答案

这将返回 classType 的泛型类型参数是。如果您使用 Class<String> 调用它, 然后它返回一个 String等等……

public <T> T getObjectFromJSONString(String jsonString, Class<T> classType) {
    // Your code here
}

这正是Gson#fromJson(String, Class)的实现

关于java - 如何使对象返回通用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366102/

相关文章:

java - Consumer<?> 和 Consumer<T> 似乎不完全等价 - 与任何 Consuming 功能接口(interface)相同

java - 编写更好的 JUnit 参数化测试用例

java - 依赖gradle库模块共享代码时如何使用dagger?

java - 检查Android中的视频有多长?

JavaScript JSON 解析返回未定义

c# - 通用方法与非通用方法 - 有任何性能优势吗?

java - 单击单选按钮时如何 toast 消息

json - 如何使用 Bash 在单引号内回显变量?

json - 读取 JSON "not an object"

scala - 如何构建泛型类型的匿名实例?