0

我将在 gson 转换器中初始化对象。

在改造 1.9 中,我像这样重写 GsonConverter:

public class MyGsonConverter extends GsonConverter {
        @Override
        public Object fromBody(TypedInput body, Type type) throws ConversionException {
                    Object obj = super.fromBody(body, type);
                    if (obj instanceof User) {
                        ((User)obj).init();
                    }
                    return obj;
        }
}

RestAdapter setConverter(new MyGsonConverter(gson))

现在在 Retrofit 2.0 中,它没有 GsonConverter,而是改为 Converter.Factory。它不能在方法中返回对象。

如何在 Retrofit 2.0 的转换器中初始化我的对象?

4

1 回答 1

1

子类化 ConverterFactory 而不是 Converter,并根据改造转换器中的现有类为其提供自定义 GsonResponseBodyConverter。

可能会有关于它的文档:

https://github.com/square/retrofit/issues/1305

同时,您可以像使用 Converter 一样修改这些类:

https://github.com/square/retrofit/tree/master/retrofit-converters/gson/src/main/java/retrofit2/converter/gson

如果您可以使用 Converter 做到这一点,那么使用 Factory 应该不会那么难。

于 2016-03-21T10:21:01.193 回答