2016-11-09 3 views
0

Так что я использую модификацию для выполнения своих вызовов API, и у меня есть эта конечная точка, которая возвращает ошибку (которая является желаемым ответом), когда я пытаюсь использовать свой конвертер для включения ответа .errorBody() в мой объект java Ошибка, он возвращает новый объект Error, но его поля равны нулю.Error Converter возвращает объект с нулевыми значениями

Вот мой объект Error Класс:

public class Error { 
    private final String message; 
    private final Object objectError; 


    public Error(String message, Object objectError) { 
     this.message = message; 
     this.objectError = objectError; 
    } 

    public String getMessage() { 
     return message; 
    } 

    public Object getObjectError() { 
     return objectError; 
    } 
} 

Вот мой метод нейтрализатор:

public static Error parseError(Response<?> response) { 
     Converter<ResponseBody, Error> converter = ApiClient.retrofit().responseBodyConverter(Error.class, new Annotation[0]); 

     Error error; 

     try { 
      error = converter.convert(response.errorBody()); 
     } catch (IOException e) { 
      return new Error("Connection Error", null); 
     } 

     return error; 
} 

И мой ответ JSON выглядит хорошо:

{"status":"error", 
    "error":{"message":"# is an invalid character", 
       "objectError":"# is an invalid character"}} 

Можете ли вы помочь мне узнать что происходит?

Массивное спасибо!

+0

В качестве примечания ** очень сильно избегайте ** названия вашего класса 'Error', поскольку он конфликтует с' java.lang.Error'. Префикс это как-то. – chrylis

+0

Спасибо за совет @chrylis, но я только назвал его так, как в сообщении. На самом деле у меня есть другое имя в моем коде. – Jpfcan

ответ

0

Я, наконец, решил это, создав еще один класс, который имеет поле статуса и поле ошибки, и использовал его в конвертере, поле ошибки в этом классе - это выше.

Смежные вопросы