オブジェクトを渡すのは良い方法ではありません。しかし、この場合、それは私にとって最高の解決策であるようです。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
...
}
}
を持っているでしょう。
この問題を解決するためのより良い解決策がありますか?
それらを混ぜる。重複したコードで共有メソッドを呼び出す2つの別個のメソッドがあります。 – Stultuske