A or Bなパラメーターを受けるのにその場の技巧的にAdapterを使うことは少ないかなぁ。
普通にmethod(A a)とmethod(B b)と二つメソッド作る。
A, B or C or ...であればmethod(A a, B b), method(A a, C c), ... とすべての
組み合わせを列挙するか(比較的まじ)、APIが煩雑になるのであればBuilderパターンに
するのが実際に使われているJavaのAPIではよく見るパターンだと思う。

あとは必要なクラスだけ受けられるスーパークラスないしインターフェイスがあれば
それを使う。よく設計されたドメインクラス群を持つAPIの場合は大抵このパターンに
落ち着くので、「APIのユーザーは」上記のような煩雑さやinstanceof云々に遭遇する
ことは案外少ない。

で、Javaの場合APIの実装の中身の煩雑さを見ないことにするのもある程度は真実だと思う。
外の人の幸せのために中の人ががんばるのはどこの世界でも変わりません。