我目前正在使用Apache POI来处理MS Excel文件,我遇到了一些对我来说很奇怪的东西。 HSSFCell类有一个名为getRichStringCellValue()
的方法,它返回一个HSSFRichTextString
对象。为了将其转换为普通字符串,我们使用getString()
。看起来像这样:
cell.getRichStringCellValue().getString()
现在让我感到疑惑的是,为什么getString()
在第一位有toString()
基本相同的东西,即返回字符串等价?有谁知道为什么?
答案 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()