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 末尾添加元素的操作。
吐槽
今天学习的内容基本掌握,继续加油!!
点赞