getRichStringCellValue()。getString()和getRichStringCellValue()。toString()之间的区别是什么?
我目前正在使用Apache POI处理MS Excel文件,而且我发现了一些对我来说很奇怪的东西。 HSSFCell类有一个名为getRichStringCellValue()
的方法,它返回一个HSSFRichTextString
对象。 为了将其转换为普通string,我们使用getString()
。 看起来像这样:
cell.getRichStringCellValue().getString()
现在我想知道的是,为什么有一个getString()
在第一个地方,当toString()
基本上是相同的东西,即返回string等效? 有谁知道为什么?
toString()
的合约 :
toString method returns a string that "textually represents" this object
toString()
的一般用途是提供一个可读的对象表示。 有些类会更进一步,并指定toString()
的详细格式,这通常是不可取的,如果是这样,那么只适用于“值对象”(date,时间,数字)。
除非在类的javadoc中指定,否则不应该依赖toString()
返回的文本的特定格式。
一般的build议是:如果你的类想要引入一个特定的持久性文本表示,它应该由一个单独的方法提供。 因此,如果稍后toString()
的实现发生更改,则永远不会感到惊讶。
两种方法的底层实现是相同的:
return _string.toString();
我的猜测是他们添加了getter可以使用它作为一个bean属性。
顺便说一句:你可能想检查之前执行cell.getRichStringCellValue().getString()