美文网首页
Java中的连续等号

Java中的连续等号

作者: begonia_rich | 来源:发表于2018-06-02 23:37 被阅读30次

今天看guava中MoreObjects这个类的toStringHelper的方法实现时,发现它的实现是通过ValueHolder持有一组值对象,就是基本的单链表结构,其中在尾节点的next节点和尾节点切换赋值时使用了连续等号一下有点蒙蔽...这里记录一下,还是有点意思的实现

 public static final class ToStringHelper {
   // 去掉不关心的部分代码...

   // 头部节点,供遍历使用
   private final ValueHolder holderHead = new ValueHolder();
   // 当前尾部节点,供添加新节点使用
   private ValueHolder holderTail = holderHead;

   private ToStringHelper addHolder(String name, Object value) {
      // 通过addHolder()获得新添加的尾部节点
      ValueHolder valueHolder = addHolder();
      valueHolder.value = value;
      valueHolder.name = checkNotNull(name);
      return this;
    }

    private ValueHolder addHolder() {
      ValueHolder valueHolder = new ValueHolder();
      // 将当前尾部节点的next赋值给新节点,同时将新节点放到尾部节点,以便下次继续添加新节点
      holderTail = holderTail.next = valueHolder;
      return valueHolder;
    }

    /**
     * 基本值结构
     */
    private static final class ValueHolder {
      String name;
      Object value;
      ValueHolder next;
    }
}

可以简单的把连等赋值直接看自己关心值和右边的值
比如a=b=c,从右优先结合实际上赋值顺序是b=c,a=b,可以简单看成a=c,b=c.这是一样的,忽略掉中间不关心的参数,单独看关心的值.

相关文章

  • Java中的连续等号

    今天看guava中MoreObjects这个类的toStringHelper的方法实现时,发现它的实现是通过Val...

  • 生活中的约等号

    2022.4.5 奥力给≈奥利奥 雪白≈雪碧 残人≈残疾人

  • 为什么mac terminal 报错export `=‘ not

    因为你在等号左右加了不改加的空格啊骚年! 正确实例:export JAVA_HOME=/usr/java/jdk1...

  • Javascript 中连等号的使用

    是该叫连等号吗?还是叫一次初始化多个值,哎,先将就了。 场景一 有时可能会有这样的需求,a、b两个变量初始化的值都...

  • 等号

    如果你的眼睛也有我左眼的毛病,你会看到,每个人的身体边,都有一个等号。 学生身边的等号通常是考试成绩。 模特身边的...

  • 等号

    曾经,我从来不会考虑我的家人,朋友,恋人甚至宠物离开我的生活会是怎样的感受。直到我经历遍之后,发现,一生中真...

  • 等号

    曾经,我从来不会考虑我的家人,朋友,恋人甚至宠物离开我的生活会是怎样的感受。直到我经历遍之后,发现,一生中真...

  • 等号

    总结自数学有意思,少年得到 产生理性思维的前提 举个例子,一个原始人发现了一个重要的事情,苹果可以吃,石头不可以吃...

  • 等号

    有的人认为:应届研究生=更高的工资>应届本科生工资 在他们判断里,两名应届研究生和应届毕业生同时被录取时的工资高低...

  • 马云不会编程怎么做起的阿里?Java技术路线。文末有惊喜

    【JAVA简介】 Java已经连续多年占据编程语言榜首,其在后台开发中的占有率,地位不可撼动!Java是一门面向对...

网友评论

      本文标题:Java中的连续等号

      本文链接:https://www.haomeiwen.com/subject/qfedsftx.html