我有一個名爲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);
}
}
}
爲什麼你想在這裏使用泛型?當方法參數或變量實際上實際上是一個對象,但是被訪問就好像它是用特定的類來鍵入的時候,泛型被用於這種情況。你的情況沒有這樣的變數。 – 2012-04-01 06:23:30
@AlexeiKaigorodov理由: A)想清理代碼,認爲他們會 B)看看他們將如何用於教育目的。 – 2012-04-01 07:15:07