如果您 确实 想这样做,则需要将您接受的类包装在自己的自定义类中。在您的示例情况下,可能类似于:
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)));但老实说,这听起来有点复杂,而且工作量太大,以至于无法调用具有不同参数类型的方法。您确定使用两种方法无法获得相同的效果,而对于通用逻辑而言,使用第三种方法不能实现相同的目的?



