3 回答

TA贡献1801条经验 获得超16个赞
我认为在本节中:
default:
(check == false)
json.append(rs.getObject(i).toString());
//System.out.println(json);
}
您正在尝试将对象转换为字符串。除非您覆盖 toString 方法以打印值,否则它将始终打印 [B@7a9e5ed5。此代码是对象的字符串值。你不能直接把对象变成字符串。

TA贡献1998条经验 获得超6个赞
你看,B@7a9e5ed5是你要显示的值的地址。
json.append(rs.getObject(i).toString()); In this line, the to string method must be overriden for your type of object.
例如,如果我有一个studentClass Student的对象并且我没有覆盖该toString()方法。如果我使用student.toString();它将打印对象学生保存在内存中的地址值。
例如,如果我想查看学生的值,我将不得不重写类中的 toString 方法。
@Override
public String toString(){
return this.getName() + " " + this.getClass();
}
上面只是一个例子,在你的代码中,你需要知道你从结果集中得到了哪种类型的对象,并且你需要重写那个类中 toString 的方法。
希望这是有道理的。

TA贡献1836条经验 获得超3个赞
检查标志仅对整数为真。
对于默认块中的其他类型,您直接将对象转换为 String 以获得非字符值,您需要覆盖 toString 方法才能进行准确的转换。确保覆盖 toString 或提供具有适当异常捕获机制的 String.valueOf
添加回答
举报