GSON如何使用我不知道的通用值类型反序列化对象

时间:2017-10-06 16:56:59

标签: java json rest deserialization

所以我有一个MyCustomObject,格式如下:

public class MyCustomObject<T extends Comparable<T>> implements Comparable<MyCustomObject<T>> {
    private String id;
    private T value;

    ~~getters
    ~~setters
}

我有一个REST端点需要反序列化这个JSON对象并将其放回MyCustomObject中。我不关心T是什么类型,因为只要它实现了Comparable,我的其余代码就会处理它。这是我的控制器代码:

  @PostMapping("/myEndpoint")
  public <T extends Comparable<T>> ResponseEntity<Integer> balancingPost(@RequestBody MyCustomObject<T> mco) {...}

当我尝试使用通过正文传入的ControlPoint来命中此端点时,我的代码抛出异常:

MyCustomObject [ “值”]);嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:无法构造java.lang.Comparable的实例:抽象类型需要映射到具体类型,具有自定义反序列化器,或包含其他类型信息

那么有没有办法让我在没有指定T的具体类型的情况下离开?我希望尽可能保持我的代码通用。

0 个答案:

没有答案