StringBuilder 构造函数接受一个 StringBuilder 对象——为什么?
StringBuilder constructor accepts a StringBuilder object - why?
class StringBuilder
定义了四个构造函数,其中 none 接受一个 StringBuilder
,但以下编译:
StringBuilder sb = new StringBuilder(new StringBuilder("Hello"));
这是否意味着匿名 StringBuilder
对象被编译器以某种方式在内部转换为字符串?
一个StringBuilder
is a CharSequence
(it implements that interface), and there is a constructor taking a CharSequence
。这就是给定代码编译的原因:
StringBuilder sb = new StringBuilder(new StringBuilder("Hello"));
这个构造函数所做的只是用给定 CharSequence
的内容初始化新的 StringBuilder
。结果与
相同
StringBuilder sb = new StringBuilder("Hello");
有一个接受 CharSequence
的构造函数,它是一个由 StringBuilder 和 String(以及其他 类)实现的接口。
http://docs.oracle.com/javase/8/docs/api/java/lang/CharSequence.html
class StringBuilder
定义了四个构造函数,其中 none 接受一个 StringBuilder
,但以下编译:
StringBuilder sb = new StringBuilder(new StringBuilder("Hello"));
这是否意味着匿名 StringBuilder
对象被编译器以某种方式在内部转换为字符串?
一个StringBuilder
is a CharSequence
(it implements that interface), and there is a constructor taking a CharSequence
。这就是给定代码编译的原因:
StringBuilder sb = new StringBuilder(new StringBuilder("Hello"));
这个构造函数所做的只是用给定 CharSequence
的内容初始化新的 StringBuilder
。结果与
StringBuilder sb = new StringBuilder("Hello");
有一个接受 CharSequence
的构造函数,它是一个由 StringBuilder 和 String(以及其他 类)实现的接口。
http://docs.oracle.com/javase/8/docs/api/java/lang/CharSequence.html