本当にそれをしたいのなら、あなたはあなた自身のカスタムクラスの中にあなたの受け入れられたクラスを包む必要があるでしょう。あなたの例の場合、おそらく次のようなものです。
public class OrDoerElement {
private final Number numberValue;
private final CharSequence charSequenceValue;
private OrDoerElement(Number number, CharSequence charSequence) {
this.numberValue = number;
this.charSequenceValue = charSequence;
}
public static OrDoerElement fromCharSequence(CharSequence value) {
return new OrDoerElement(null, value);
}
public static OrDoerElement fromNumber(Number value) {
return new OrDoerElement(value, null);
}
}
そしてあなたのorDoer
方法は次のようになります:
public void orDoer(OrDoerElement someData) { .... }
次に、それらの1つを作成し、次のいずれかを使用してメソッドで使用できます。
orDoer(OrDoerElement.fromCharSequence("a string of chars"));
orDoer(OrDoerElement.fromNumber(new Integer(6)));
しかし、正直なところ、これは少し複雑すぎて、さまざまなパラメータータイプでメソッドを呼び出すことができないほど多くの作業が必要になります。2つの方法と、共通論理の3番目の方法を使用して同じことを達成することはできませんか?