我瞭解java.io中的其他Reader
子類,但我不能想到在我已經有String
或char[]
可用數據的情況下需要CharArrayReader
或StringReader
的用例。CharArrayReader和StringReader有什麼用?
是否因爲兼容性?將「String
」或「char[]
」「飼餵」爲期望Reader
作爲參數的東西?
我瞭解java.io中的其他Reader
子類,但我不能想到在我已經有String
或char[]
可用數據的情況下需要CharArrayReader
或StringReader
的用例。CharArrayReader和StringReader有什麼用?
是否因爲兼容性?將「String
」或「char[]
」「飼餵」爲期望Reader
作爲參數的東西?
我不會稱之爲兼容性,它的靈活性。
你是對的,一些處理基於字符的數據庫提供了一種接受Reader
的方法。所以該庫的用戶可以選擇任何機制來提供該庫。
如果硬盤上有文件,請使用FileReader
。如果您有任意InputStream
,請使用InputStreamReader
(使用適當的編碼)。如果您的代碼中已有簡單的String
,請使用StringReader
。等等...
除了已經回答的問題之外,當您爲期望讀者的方法編寫單元測試時,這些類非常方便。
我不會稱之爲*靈活性*非常*抽象*(這與*封裝*緊密相關)。 – user2864740