0

前文: 私は Apache IO を認識しており、Apache IO へのポインタを超えた解説を希望します。


これはおそらく少しばかげた質問かもしれませんが、私は次のことに気付きました:

たとえば、入力ストリームから読み取る必要がある API を実装すると、多くのオーバーロードされたバリアントを実装することになります。次に例を示します。

public void foo ( InputStream input, int somearg, float someotherarg) { ...

オーバーロードされたバリアント:

public void foo ( File inputFile, int somearg, float someotherarg) { ...
public void foo ( String filename, int somearg, float someotherarg) { ...

- また -

私は実装することができます

public void foo ( InputStream input, int somearg, float someotherarg) { ...

また、ファイル名、ファイルを処理し、それらを InputStreams に変換するヘルパー ユーティリティ関数を実装します。

私が持っている質問は、私がこれを再実装し続けているということです-誰かが書いたライブラリがありますか、それともこれはデザインパターンで処理されましたか?

ありがとう。

4

2 に答える 2

2

グアバには と呼ばれるものがありInputSupplierます。おそらく、あなたは見てみる必要があります。

それとは別に、Java 7 にはAutoCloseableインターフェイスとtry-with-resources と呼ばれる機能があります。これにより、ケースが簡素化される場合があります (つまり、必要な API メソッドのみを作成できInputStream、プログラマーは try-with-resources を使用してそれらの入力を処理できます)。 string / file パラメーターがある場合はストリーム)。

于 2012-05-13T19:19:53.967 に答える
0

Apache Commons IO を探しているかもしれません。この種のオーバーヘッドを削減できるメソッドがたくさんあります。

于 2012-05-13T17:34:24.947 に答える