Java对象的Jackson解析器

Java对象的Jackson解析器,java,json,jackson,Java,Json,Jackson,我正在使用Jackson解析对象。有时我需要一份物品清单 当我像这样使用它的工作 List<MyObject> mapper.readValue(file , new TypeReference<MyObject>() {}) List mapper.readValue(文件,new TypeReference(){}) 但是当我像这样使用它时,它不起作用 public class JsonMocksRepository<T>{ public

我正在使用Jackson解析对象。有时我需要一份物品清单

当我像这样使用它的工作

 List<MyObject> mapper.readValue(file , new TypeReference<MyObject>() {})
List mapper.readValue(文件,new TypeReference(){})
但是当我像这样使用它时,它不起作用

public class JsonMocksRepository<T>{

    public  T getObject() throws Exception{

        return mapper.readValue(file ,new TypeReference<T>());
    }
}
public类JsonMocksRepository{
public T getObject()引发异常{
返回mapper.readValue(文件,newTypeReference());
}
}
我需要做什么?
基本上,我想使用泛型来获得正确的类,这是因为类型擦除。运行时没有可用的关于T表示的实际类型的信息,因此您的
TypeReference
实际上就是
TypeReference

如果需要
JsonMocksRepository
的通用实例,则需要在构造时注入
TypeReference

public class JsonMocksRepository<T>{
  private final TypeReference<T> typeRef;

  public JsonMocksRepository(TypeReference<T> typeRef) {
    this.typeRef = typeRef;
  }

  public T getObject() throws Exception{
    return mapper.readValue(file, typeRef);
  }
}
public类JsonMocksRepository{
私人最终类型参考类型参考;
公共JsonLocksRepository(类型引用typeRef){
this.typeRef=typeRef;
}
public T getObject()引发异常{
返回mapper.readValue(文件,typeRef);
}
}

“不工作”对错误的描述不够好。请解释您遇到的错误或异常。如果抛出异常,完整的堆栈跟踪将非常有用。你是对的,对不起。它正在工作,但他没有返回对象列表,而是返回LinkedHashMap列表