安卓开发从MySQL获取列表 如何正确打印POJO对象实际内容
问题根源
Java中所有类默认继承java.lang.Object,Object类的默认toString()方法实现为「类名+@+十六进制哈希值」。你的KatPojo类没有重写该方法,因此直接打印对象时会输出哈希值拼接的内容。
你打印的是List<KatPojo>类型的列表时,List类默认的toString()会遍历所有元素,调用每个KatPojo对象的默认toString()方法,因此最终输出的列表内容为[com.trycatchsoft.app.Models.KatPojo@7553fa]这类形式。
解决方法
1. 重写KatPojo的toString()方法
这是最直接的适配方案,重写后打印对象/包含该对象的列表时,会自动输出你定义的属性内容。
可手动在KatPojo类中添加如下方法:
@Override public String toString() { return "KatPojo{" + "tf=" + tf + ", veri='" + veri + '\'' + ", verid='" + verid + '\'' + '}'; }
Android Studio快捷生成操作:打开KatPojo类,右键空白处选择「Generate」→ 点击「toString()」,选中所有需要输出的字段后确认,即可自动生成上述代码。
2. 调试时转JSON格式输出
如果需要更清晰的结构化调试内容,可将对象/列表直接转为JSON字符串打印,适合复杂实体或长列表的调试场景。
若项目已引入Gson依赖,直接调用即可:
// 打印单个KatPojo对象 Log.d("调试标签", new Gson().toJson(katPojoInstance)); // 打印List<KatPojo>列表 Log.d("调试标签", new Gson().toJson(katPojoList));
输出结果会直接展示所有字段的键值对,无需修改原有实体类代码。
内容的提问来源于stack exchange,提问作者ebu
相关产品推荐
相关产品推荐

