toString 样式
最常见的样式:
public String toString() {
return "{" +
"hsl=" + hsl +
", dailyOil=" + dailyOil +
", dailyWater=" + dailyWater +
", Np=" + Np +
", Lp=" + Lp +
", year='" + year + '\'' +
", Wp=" + Wp +
", cccd=" + cccd +
'}';
}
- 只有 year 是 String,所以加了单引号
若是存在 double[][]
类型的就需要自己拼接了
public String toString() {
StringBuilder result = new StringBuilder();
result.append("{curveName=\"" + curveName + "\", coordinate=[");
for (int i = 0; i < coordinate.length; i++) {
result.append("[");
for (int j = 0; j < coordinate[i].length; j++) {
result.append(coordinate[i][j]).append(", ");
}
result.delete(result.length() - 2, result.length()); // 删除最后一个逗号和空格
result.append("], ");
}
result.delete(result.length() - 2, result.length()); // 删除最后一个逗号和空格
result.append("]}");
return result.toString();
}
- 因为这里还是用
", coordinate=" + Arrays.toString(coordinate)
就是多个引用(内含哈希码)Arrays.toString()
方法对于一维基本类型数组(如double[]
)能够正确地打印数组的元素,但是对于二维数组(实际上是数组的数组),它只会打印每个子数组的引用,而不是子数组的内容
", coordinate=" + coordinate
的话就是一个总的引用- 所以需要如上自行拼接
若是存在 List<CalcPredict>
和 Map<String, double[][]>
类型的话,如:
private List<CalcPredict> calcPredict;
private Map<String, double[][]> predict;
private Map<String, double[][]> fitting;
// 其余省略
- 也需要自己进行拼接操作:
public String toString() {
StringBuilder result = new StringBuilder("");
result.append("{curveName=\"" + curveName + "\", a=" + a + ", b=" + b + ", curves=\"" + curves + "\", kccl=" + kccl + ", calcPredict=" + calcPredict + ", ");
for (Map.Entry<String, double[][]> entry : predict.entrySet()) { result.append(entry.getKey()).append("=").append(Arrays.deepToString(entry.getValue())).append(", ");
}
// 删除最后一个逗号和空格
result.delete(result.length() - 2, result.length());
result.append(", dates=\"" + dates + "\", factor=" + factor + ", csl=" + csl + ", ");
for (Map.Entry<String, double[][]> entry : fitting.entrySet()) { result.append(entry.getKey()).append("=").append(Arrays.deepToString(entry.getValue())).append(", ");
}
result.delete(result.length() - 2, result.length());
result.append("}");
return result.toString();
}
-
calcPredict=[CalcPredict{ ... }, CalcPredict{ ... }]
在实体类中已写好,直接用即可 -
predict
、fitting
就需要拼接出来,例如fitting
按需拼接为:fitting=[[3575.19, 5.338201499852306], [3879.37, 5.375445406908198], [4149.5, 5.408520219890669], [4361.2, 5.434440842955079], [4618.39, 5.465931277749295]]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义