我知道傳遞一個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