getRichStringCellValue()。getString()和getRichStringCellValue()。toString()之间的区别是什么

时间:2014-03-17 10:41:45

标签: java string excel apache-poi

我目前正在使用Apache POI来处理MS Excel文件,我遇到了一些对我来说很奇怪的东西。 HSSFCell类有一个名为getRichStringCellValue()的方法,它返回一个HSSFRichTextString对象。为了将其转换为普通字符串,我们使用getString()。看起来像这样:

cell.getRichStringCellValue().getString()

现在让我感到疑惑的是,为什么getString()在第一位有toString()基本相同的东西,即返回字符串等价?有谁知道为什么?

2 个答案:

答案 0 :(得分:5)

toString()的{​​{3}}:

toString method returns a string that "textually represents" this object

toString()的一般目的是提供对象的人类可读表示。有些类更进一步,并指定toString()的详细格式,这通常是不可取的,如果是,那么只针对“值对象”(日期,时间,数字)。

除非在类的javadoc中指定,否则不应该依赖toString()返回的文本的特定格式。

一般建议:如果您的类想要引入特定的持久性文本表示,则应该通过单独的方法提供。因此,如果toString()的实现稍后发生变化,您永远不会感到不快。

答案 1 :(得分:1)

两种方法的基础实现相同:

return _string.toString();

我的猜测是他们添加了getter以便能够将它用作bean属性。

BTW:您可能希望在执行cell.getRichStringCellValue().getString()

之前检查空值