Как стать автором
Обновить

Комментарии 4

Думаю, что в графе зависимостей неточность, нет прямой связи между OkHttpClient и OkHttp3Downloader, потому что для создания OkHttp3Downloader необходим okHttpClient.
На 02.08.2019 пример не работает т.к. в ответе JSON поля dob и registered не строковые, а составные. Я так понимаю, сервис поменял формат возвращаемых данных по сравнению с моментом написания статьи.
Я решил так:
  1. Создал модель в каталоге model
    package com.hariofspades.dagger2advanced.model;
    
    import com.google.gson.annotations.SerializedName;
    
    public class Dob {
        @SerializedName("date")
        private String date;
    
        @SerializedName("age")
        private int age;
    
        public String getDate() {
            return date;
        }
    
        public void setDate(String date) {
            this.date = date;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    

  2. В файле model/Result.java
    Соответственно изменил тип для полей dob и registered на Dob (так же поменял тип получаемых и возвращаемых значений для аксессора и мутатора):
    строка 27: было
    private String dob;

    стало
    private Dob dob;

    строка 30: было
    private String registered;

    стало
    private Dob registered;


    строки 87-101:
    было
    
        public String getDob() {
            return dob;
        }
    
        public void setDob(String dob) {
            this.dob = dob;
        }
    
        public String getRegistered() {
            return registered;
        }
    
        public void setRegistered(String registered) {
            this.registered = registered;
        }

    стало
        public Dob getDob() {
            return dob;
        }
    
        public void setDob(Dob dob) {
            this.dob = dob;
        }
    
        public Dob getRegistered() {
            return registered;
        }
    
        public void setRegistered(Dob registered) {
            this.registered = registered;
        }



На 03.12.2019 18:50 пример также не работает, т.к. поле street не строковое, а составное. Вероятно, сервис поменял формат возвращаемых данных по сравнению с моментом написания предыдущего комментария. В качестве быстрого фикса можно создать такой класс:
class Street {
    @SerializedName("number")
    private int number;
    @SerializedName("name")
    private String name;
}

и в классе Location у переменной street поменять тип со стринга на Street
Оно действительно, всё того стоит?? Я не спец в программировании, но вижу, что в итоге написано гораздо бОльше кода, чем при первом варианте в MainActivity.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории