【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
我在写工具类的时候写了两个方法
void fun(List l); void fun(Queue q);
可是问题来了,当我要传入的参数把以上两个接口都实现了,会发生什么?
例如
fun(new LinkedList());
IDE给我的提示是:The method fun(List<?>) is ambiguous for the type Main
如果我吧上面两个方法的位置调换一下,IDE给我的提示就变成了:The method fun(Queue<?>) is ambiguous for the type Main
首先,重载是说方法名相同,参数的类型或者个数不同,就叫重载
你传一个对象能满足两个不通的要求或者说你两个方法的参数类型一样?那样的话你这个重载本来就有问题。
强制转型
fun((List)
new
LinkedList());
fun((Queue)
new
LinkedList());
引用来自“梅公子”的答案
首先,重载是说方法名相同,参数的类型或者个数不同,就叫重载
你传一个对象能满足两个不通的要求或者说你两个方法的参数类型一样?那样的话你这个重载本来就有问题。
引用来自“guomingchang”的答案
强制转型
fun((List)
new
LinkedList());
fun((Queue)
new
LinkedList());