объявлен пользовательский сеттер, но, похоже, ничего не произошло с ломбоком

Я объявил класс с аннотацией @Data и объявил пользовательский сеттер.

Однако это не называется методом установки.

Вот для данных сборки.

    // Build data from json string.
    Type typeOfResultSet = new TypeToken<JsonResult<AntTalkList>>(){}.getType();
        Gson g = new Gson();

    JsonResult<AntTalkList> res = g.fromJson(jsonString, typeOfResultSet);

И это ломбок @Data добавленного класса.

@Data
public class TalkInfo {
    private long articleId;
    private long userId;
    private String userName; // this needs custom setter
    private String userType;
    private int last_c_seq ;
    private String title;
    private String question;
    private String dateInfo;
    private int replyCount;
    private String thumbUrl;


    public void setUserName(String userName){ // I want to call this.
        try{
            //This doesn't printed out
            System.out.println("userName");
            this.userName = URLDecoder.decode(userName, "UTF-8");
        } catch(Exception e){
            e.printStackTrace();
            this.userName = userName;
        }
    }

Я не знаю, как решить эту проблему. Может быть, есть какие-то отношения с использованием Gson?


person Minkyu Kim    schedule 20.07.2016    source источник


Ответы (1)


Согласно этому вопросу, GSON не использует сеттеры, но устанавливает поля напрямую.

person Roel Spilker    schedule 20.07.2016
comment
О, я этого не знал. Спасибо, Роэль. - person Minkyu Kim; 20.07.2016