ReadTill
というメソッドがありますが、コードは同じですがパラメータのタイプは異なります。誰かが私にそれらを組み合わせる戦略/コードを示すことができますか?私はInputStream
とBufferedReader
がインタフェースを共有しているとは思っていません。もしそうであれば、それは何ですか?Javaの重複したメソッドを組み合わせる
私はジェネリックスでこれをどうすればいいのですか?
ありがとうございます。
ちょうど私の頭の上からpublic static void ReadTill(InputStream in, OutputStream out, String end) throws IOException {
int c, pos = 0;
StringBuffer temp = new StringBuffer();
while ((c = in.read()) != -1) {
char cc = (char) c;
if (end.charAt(pos++) == cc) {
if (pos >= end.length()) {
break;
}
temp.append(cc);
} else {
pos = 0;
if (temp.length() > 0) {
out.write(temp.toString().getBytes());
temp.setLength(0);
}
out.write(cc);
}
}
}
public static void ReadTill(BufferedReader in, OutputStream out, String end) throws IOException {
int c, pos = 0;
StringBuffer temp = new StringBuffer();
while ((c = in.read()) != -1) {
char cc = (char) c;
if (end.charAt(pos++) == cc) {
if (pos >= end.length()) {
break;
}
temp.append(cc);
} else {
pos = 0;
if (temp.length() > 0) {
out.write(temp.toString().getBytes());
temp.setLength(0);
}
out.write(cc);
}
}
}
ここでジェネリックを使用したいのはなぜですか?ジェネリックスは、メソッドの引数や変数が実際にObjectを受け取り、特定のクラスで型付けされているかのようにアクセスされる場合に使用されます。あなたの場合、そのような変数はありません。 –
@AlexeiKaigorodov理由: A)コードをクリーンアップしたいと思っていましたが、彼らは教育目的でどのように使用されるのかを見てください。 –