"和 "Class variable"-6ren"> "和 "Class variable"-我想获取 JsonDeserialize 的 Generic 类的类型变量。 Class Data { private T data; } Class DataType { private S-6ren">
gpt4 book ai didi

java - 我想要通用类的 "Class"和 "Class variable"

转载 作者:行者123 更新时间:2023-12-02 09:50:27 25 4
gpt4 key购买 nike

我想获取 JsonDeserialize 的 Generic 类的类型变量。

Class Data<T> {
private T data;
}

Class DataType {
private String dummy;
}


Class dataTypeClass = DataType.class;


// I want get this.
Class dataClass = Data<dataTypeClass>.class;


我按照这个方法试过了,不行。

我可以获得 Data.class 吗??

最佳答案

如果您使用 Jackson 作为您的库。您可以使用 TypeReference :

TypeReference<Data<DataType>> r = new TypeReference<Data<DataType>>() {};
...
Data<DataType> data = objectMapper.readValue(json, r);

此代码将创建 TypeReference 的新匿名子类参数化为 <Data<DataType>> 。此类在内部使用“hackaround”来获取通用参数,然后 Jackson 会选取该参数来反序列化您的 JSON。

关于java - 我想要通用类的 "Class<T>"和 "Class variable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56354932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com