2009-07-22 94 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可能更适合。如果您设计的接口与您的应用程序要求更接近,没有人会抱怨。

相关问题