SerializedName值返回带反射的int值

时间:2018-07-25 18:00:34

标签: android gson retrofit2

我正在使用以下程序为我的项目编程反序列化器:

implementation('com.squareup.retrofit2:retrofit:2.3.0')
        {
            exclude module: 'okhttp'
        }

implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'

我正在尝试通过反射方式获取SerializedName值:

final Field[] camposEntidad = e.getClass().getDeclaredFields();

    for(Field campoEntidad : camposEntidad) {
        if(campoEntidad.isAnnotationPresent(SerializedName.class)) {
            String value = campoEntidad.getAnnotation(SerializedName.class).value();
        }
    }

最后,我的实体:

import com.google.gson.annotations.SerializedName;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

@DatabaseTable(tableName = "usuario")
public class Usuario {

    public static final String NOMBRE_CAMPO_NOMBRES = "name";


    @DatabaseField(canBeNull = false, columnName = NOMBRE_CAMPO_NOMBRES)
    @SerializedName(NOMBRE_CAMPO_NOMBRES)
    private String nombres;


    public Usuario() {
    }

    public String getNombres() {
        return nombres;
    }

    public void setNombres(String nombres) {
        this.nombres = nombres;
    }

}

但是我的问题是当我获得serializationName批注的值时,因为它给我一个负的int值。

感谢您的帮助。

0 个答案:

没有答案