我有一个名为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