我知道传递一个Object不是一个好习惯。但在这种情况下,这似乎是对我来说最好的解决方案。传递java.lang.Object作为参数
public void doSomething(final Object obj) {
// some code
...
if (obj instanceof InputStream) {
document = PDDocument.load((InputStream) obj);
} else if (obj instanceof File) {
document = PDDocument.load((File) obj);
} else {
throw new IllegalArgumentException("Argument must be an instance of " + InputStream.class.getName() + " or " + " " + File.class.getName() + ".");
// more code
...
}
}
另一种解决办法有更多的重复代码(之前和PDDocument.load(obj);
毕竟行)
public void doSomething(final InputStream obj) {
// some code
...
document = PDDocument.load(obj);
// more code
...
}
}
public void doSomething(final File obj) {
// some code
...
document = PDDocument.load(obj);
// more code
...
}
}
由于重复的代码,我更喜欢第一个解决方案。
您是否知道解决此问题的更好解决方案?
混合起来。有两个独立的方法调用与重复代码共享的方法。 – Stultuske