java - Robospice 缓存对象始终为空

标签 java android robospice google-http-client

出于某种原因,从 Robospice 的缓存中拉回缓存对象始终为空。我是不是做错了什么?

getSpiceManager().execute(cardRequest, Card.class.getName(),  
                           DurationInMillis.ONE_DAY, new CardRequestListener());

它是如何执行的。香料管理器创建如下:

mSpiceManager = new SpiceManager(JacksonGoogleHttpClientSpiceService.class);

卡片类如下:

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "iosThumbHighRes",
    "iosThumb",
    "iosLargeHiRes",
    "iosLargeHighRes",
    "iosLarge"
})
public class Card {

    @JsonProperty("iosThumbHighRes")
    private String iosThumbHighRes;
    @JsonProperty("iosThumb")
    private String iosThumb;
    @JsonProperty("iosLargeHiRes")
    private String iosLargeHiRes;
    @JsonProperty("iosLargeHighRes")
    private String iosLargeHighRes;
    @JsonProperty("iosLarge")
    private String iosLarge;
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();

    @JsonProperty("iosThumbHighRes")
    public String getIosThumbHighRes() {
        return iosThumbHighRes;
    }

    @JsonProperty("iosThumbHighRes")
    public void setIosThumbHighRes(String iosThumbHighRes) {
        this.iosThumbHighRes = iosThumbHighRes;
    }

    @JsonProperty("iosThumb")
    public String getIosThumb() {
        return iosThumb;
    }

    @JsonProperty("iosThumb")
    public void setIosThumb(String iosThumb) {
        this.iosThumb = iosThumb;
    }

    @JsonProperty("iosLargeHiRes")
    public String getIosLargeHiRes() {
        return iosLargeHiRes;
    }

    @JsonProperty("iosLargeHiRes")
    public void setIosLargeHiRes(String iosLargeHiRes) {
        this.iosLargeHiRes = iosLargeHiRes;
    }

    @JsonProperty("iosLargeHighRes")
    public String getIosLargeHighRes() {
        return iosLargeHighRes;
    }

    @JsonProperty("iosLargeHighRes")
    public void setIosLargeHighRes(String iosLargeHighRes) {
        this.iosLargeHighRes = iosLargeHighRes;
    }

    @JsonProperty("iosLarge")
    public String getIosLarge() {
        return iosLarge;
    }

    @JsonProperty("iosLarge")
    public void setIosLarge(String iosLarge) {
        this.iosLarge = iosLarge;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this);
    }

    @Override
    public boolean equals(Object other) {
        return EqualsBuilder.reflectionEquals(this, other);
    }

    @JsonAnyGetter
    public Map<String, Object> getAdditionalProperties() {
        return this.additionalProperties;
    }

    @JsonAnySetter
    public void setAdditionalProperties(String name, Object value) {
        this.additionalProperties.put(name, value);
    }

}

我还需要设置什么吗?

谢谢,格雷姆

最佳答案

Google Http 客户端使用 @Key 注释。您正在使用 Googe Http Java 客户端不支持的 Jackson 注释,因为它为所有序列化解决方案 (gson/jackson) 提供了一个抽象层。

关于java - Robospice 缓存对象始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847599/

相关文章:

android - 动态添加多个 fragment 到我的 Activity 布局

android - 可以在非 UI 线程中运行 Robospice 监听器吗?

android - 我应该用什么来在android中异步访问网络?

java - 同步链表 - peek

java - 我如何让它运行。我不断收到找不到符号

android - 将焦点放在 recyclerview 项目上

java - Jackson - 使用 loadDataFromNetwork() 方法通过 Robospice 读取 JSON 数组

java - 开发人员应该在 JavaFX 中实现自己的 XXXProperties 吗?

Swing组件和jdk版本问题

java - 从 fragment 中的内部存储读取和写入文件