在检查它是否重复之前,我刚检查了以下问题:How do I convert [[Ljava.lang.String;@7defb4fb] to a String和Why does println(array) have strange output? ("[Ljava.lang.String;@3e25a5")
好吧,当我在调试模式下调用我的动作方法时,我有这样的事情:
RenderBandejasForm bandejaForm = (RenderBandejasForm) form;
String [] ts = bandejaForm.getTareasSeleccionadas();
问题出现在我尝试迭代这个问题时,ts值类似于[Ljava.lang.String;@64c064c
,那么,我想如何循环这个?
我试图在输出中得到一些东西,如:
System.out.println(Arrays.toString(ts));
获得相同的奇怪输出:[Ljava.lang.Long;@64c064c
我也试图遍历它:
for (String temp : ts){
String test1 = temp;
}
字符串test1显示不同的[Ljava.lang.Long;@differentNumbers
我认为我正在调用内存对象,而不是调用数组吗?
编辑:
方法getTareasSeleccionadas()应该打印一个String数组,如下所示:[66344,66345,66553]但我总是得到那个输出[Ljava.lang.Long;@64c064c
已编辑2: 以下是我所拥有的函数的所有代码:
/**
* Elimina una o más tareas.
*/
public ActionForward eliminarTareas(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RenderBandejasForm bandejaForm = (RenderBandejasForm) form;
String [] ts = bandejaForm.getTareasSeleccionadas();
//here I start my tests
for (String temp : ts){
String test1 = temp;
}
String test2 = Arrays.deepToString(ts);
String test3 = Arrays.toString(ts);
//Here I finish'em
return this.bandeja(mapping, bandejaForm, request, response);
}
答案 0 :(得分:1)
这会将数组中的内容打印为字符串。
for(String s : ts) {
System.out.println(s);
}
如果打印地址(如Ljava.lang.Long@xxx)那么这就是该字符串中的实际内容。因此,您可能需要检查插入到数组中的内容。
编辑: 看到你正在输入数字但是获取地址。尝试输入它们,如array [index] ="" + longValue; 或者Long.toString(longValue)
答案 1 :(得分:0)
用户Pshemo让我再次检查我的代码,因为我可能忘记在正确的位置使用Arrays.toString()
,好吧,这是:
public ActionForward confirmEliminarTareas(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RenderBandejasForm bandejaForm = (RenderBandejasForm) form;
request.setAttribute(Constants.TAREAS,
Arrays.toString(bandejaForm.getTareasSeleccionadas()));
request.setAttribute(Constants.TIPO_BANDEJA,
bandejaForm.getTipoBandeja());
request.setAttribute(Constants.TIPO_TAREA, bandejaForm.getTipoTarea());
return mapping.findForward("confirmEliminarTareas");
}
我把自己的注意力集中在elimnarTareas上,当我调试了erasearTareas时,我忘记了我的其他课程,现在我得到了数组格式的数字,如下所示:[66348, 65587, 65474, 65382]