我正在使用以下程序为我的项目编程反序列化器:
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值。
感谢您的帮助。