【发布时间】:2015-11-14 04:16:48
【问题描述】:
我真的不明白为什么会这样。到目前为止,这是我从未遇到过的最奇怪的错误。
问题是我正在使用 Retrofit 从服务器检索一些信息,为此,我需要创建一个名为 POJO_PATIENTINFO 的 POJO。在这个 pojo 中,我有一个名为 data 的 BigDataset_PatientInfo 变量。在这个变量中,我存储了一个名为registro_variable 的List<Dataset_RegVar>,其中有以下字符串:
- registro_var_id
- registro_var_fecha
- registro_var_descripcion
- registro_var_variable
- registro_var_medida
- registro_var_commentario
没问题。我的想法是我想从另一个 Fragment.class 中恢复这些字符串,我认为很简单。
这是我完成如此简单任务的一段代码:
int size = POJOS.getPojo_patientInfo().data.registro_variable.size();
int i = 0;
strVariable = strId = strFecha = strMedida = strDescripcion = strComentarios = new String[size];
for (POJO_PATIENTINFO.Dataset_RegVar dataset : POJOS.getPojo_patientInfo().data.registro_variable) {
strVariable[i] = dataset.registro_var_variable;
strId[i] = dataset.registro_var_id;
strFecha[i] = dataset.registro_var_fecha;
strMedida[i] = dataset.registro_var_medida;
strDescripcion[i] = dataset.registro_var_descripcion;
strComentarios[i] = dataset.registro_var_comentario;
i++;
}
第一次迭代之后,就在“i++;”之前行执行时,字符串数组都存储完全相同的值,即与dataset.registro_var_comentario 相同的值。简而言之,上面这段代码就像我在写一样执行:
int size = POJOS.getPojo_patientInfo().data.registro_variable.size();
int i = 0;
strVariable = strId = strFecha = strMedida = strDescripcion = strComentarios = new String[size];
for (POJO_PATIENTINFO.Dataset_RegVar dataset : POJOS.getPojo_patientInfo().data.registro_variable) {
strVariable[i] = dataset.registro_var_comentario;
strId[i] = dataset.registro_var_comentario;
strFecha[i] = dataset.registro_var_comentario;
strMedida[i] = dataset.registro_var_comentario;
strDescripcion[i] = dataset.registro_var_comentario;
strComentarios[i] = dataset.registro_var_comentario;
i++;
}
显然,我首先想到的可能是所有这些字符串都具有相同的值。 不,他们不是。我知道这一点是因为我自己做了一些调试工作。让我贴一些结果(注意这些图像是针对 i=3 的):http://postimg.org/gallery/2gf1lj7qa/
如果您认为有必要,我会提供更多详细信息。谢谢。
【问题讨论】:
-
你会自嘲的,我敢肯定。 :D
标签: java android string arraylist