如果你真的想这样做,你需要将你接受的类包装在你自己的自定义类中。在您的示例中,可能类似于:
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) { .... }
然后,您可以构建其中一个并在您的方法中使用:
orDoer(OrDoerElement.fromCharSequence("a string of chars"));
orDoer(OrDoerElement.fromNumber(new Integer(6)));
但老实说,这听起来有点太复杂,而且工作量太大,只是为了能够调用具有不同参数类型的方法。你确定你不能用两种方法达到同样的效果,第三种方法是通用逻辑吗?