2010-05-30 73 views
3

对于定义列出字符序列参数的API(Android SDK API版本8)函数,我可以提供函数String来代替。最好的部分是,他们以同样的方式工作,没有麻烦,没有警告。在Android OS或Java中,字符序列和字符串有什么区别?

这两种类型有区别吗?更重要的是,如果我发送函数为字符串而不是字符序列,是否存在固有的危险?

感谢您的任何澄清! :D

回答

7

这两种类型有区别吗?

是的。 String是一类,而CharSequence是一个接口。如果一个方法接受CharSequence,它只需要参数来实现接口中的方法,这比只接受String更灵活。

以下API类实现CharSequenceCharBufferSegmentStringStringBufferStringBuilder。也就是说,StringCharSequence,因此可以传递给接受CharSequence的方法。

更重要的是,如果我将函数发送给字符串而不是字符序列,那么是否存在固有的危险?

没有,没有危险。 String正确实现了CharSequence,这就是所有的方法都需要正常工作。

+0

此外,字符串是最终的(http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html),所以它不能被扩展。 – 2010-05-30 14:10:58

相关问题