You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MultilineRecursiveToStringStyle中避免双括号初始化(DBI)

避免双括号初始化(DBI)的修改方案

直接将双括号初始化的逻辑拆分为对象实例化+显式调用set方法即可,修改后的代码如下:

@Override 
public String toString() {
    MultilineRecursiveToStringStyle style = new MultilineRecursiveToStringStyle();
    style.setUseShortClassName(true);
    style.setUseIdentityHashCode(false);
    return new ReflectionToStringBuilder(this, style).build();
}

修改思路:

  • 先单独创建MultilineRecursiveToStringStyle的实例,不再使用匿名内部类结合实例初始化块的双括号写法
  • 通过实例对象直接调用配置方法,完成属性设置
  • 最后将配置好的style对象传入ReflectionToStringBuilder构造器,完成toString逻辑

这样修改后,既保留了原代码的所有功能,又彻底避免了双括号初始化带来的潜在问题(比如意外持有外部类引用、无法序列化等)。

内容的提问来源于stack exchange,提问作者kill-9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:45:45