DESKTOP-7803S27_20200831-吴远亮

问题

晚上在做练习的时候,一开始有一些代码不理解

public CharacterBuffer append( Object o ) {
    
        String s = String.valueOf( o );
        char[] chars = s.toCharArray();
    
        final int n = chars.length ; // 记录被添加的字符个数
        int newLength = count + n ;
        if( newLength >= buffer.length * 0.9 ) {
            int length = Math.max( buffer.length ,  newLength );
            this.ensureCapacity( length * 3 / 2 + 1 );
        }
        System.arraycopy( chars ,  0 , buffer , count , n );
        count += n ;
        return this ;
    }

不理解代码

    
        String s = String.valueOf( o );
        char[] chars = s.toCharArray();
   

解决方法

已经理解。

因为参数传递过来的时候,是以 Object 形式传递的,所以需要先转为字符串类型,然后创建一个字符串 s 用来接收方法调用时传过来的参数,然后再建立一个 char[] chars , 并将 字符串 s 中的元素放入 chars 中,这样有利于后面将 chars 拷贝到 buffer 中,最终能够完成在buffer 末尾添加元素的操作。

吐槽

今天学习的内容基本掌握,继续加油!!

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1