2009-07-22 90 views
1

嗯。我試圖編寫一個接受字節的類,並希望爲此實現一個衆所周知的接口。接口尋找類似Appendable或OutputStream的東西

java.io.OutputStream是一個抽象類,而不是一個接口(爲什麼???),這讓我感到緊張,因爲我不知道擴展它的後果是什麼。如果沒有後果,它應該是一個接口。否則,它會讓我認爲它定義了equals()hashCode()或者其中一個Serializable相關行爲,並且在嘗試擴展它之前應該瞭解一些內容。無論如何,如果我確實擴展它,那意味着我已經用完了我的超類,並且不能擴展對於我的應用程序更重要的其他內容。

java.lang.Appendable是一個接口,它可以做我想做的,但是用於字符而不是字節。

java.nio.WritableByteChannel是我想要的,我可以使用它,但它只接受ByteBuffers作爲輸入,而不是byte []數組。

其他建議/建議? (p.s.是「輸入輸出」是I/O問題的最佳標籤嗎?)

+0

恐怕我不明白爲什麼你對擴展`OutputStream`感到緊張。你能詳細說明一下嗎? (我覺得自己像個治療師!) – 2009-07-22 14:54:12

+0

我同意。在OutputStream中沒有那麼多。所以你應該沒問題;] – pablochan 2009-07-22 15:00:01

+0

:-)見上面。 – 2009-07-22 15:00:04

回答

1

java.io.DataOutput可能適合您,雖然它有更多的方法比您要求的更多。

1

爲什麼你想使用一個衆所周知的界面?

爲您的目的創建自己的界面沒有任何壞處。

除此之外,我不會把AppendableWritableByteChannel「著名」。

1

擴展java.io.OutputStream應該沒有問題。它被設計爲用作基類。如果您擔心,請查看OutputStream的源代碼。

我唯一的問題是OutputStream API是否符合您的應用程序要求,或者不同的API可能更適合。如果您設計的接口與您的應用程序要求更接近,沒有人會抱怨。

相關問題