java 范形做为方法参数的应用中不能理解的问题,希望有高人指点迷津,谢谢```
今天在用范形做为参数,方法重载时遇到这样的情况````
想明白到底是什么道理`````想不通,不知道有没有高人指导下```
按常理来说``````
参数相同,返回值不同,重载是会发生错误的````例(1)如:
public static NodeList cyc(NodeList nodeList, int span)
{
``````
}
这个方法不能重载
public static void cyc(NodeList nodeList, int span)
{
}
但是在范形的应用中 如(例2)
public static List<String> cyc(Node node, List<String> listHTMLText)
{
}
可以重载
public static void cyc(Node node, List<Object> listHTMLText)
{
}
我本来以为是List<Object>和List<String>被认为是不同类型的参数,那么即然参类型不同,应该可以重载为
(例3)
public static List<String> cyc(Node node, List<Object> listHTMLText)
{
}
但事实上这样是不能被重载的,载,如例2中的那样````
java中重载必需要参数不同,或参数个数不同,排列不同,
返回值不同不能确定到底调用哪个方法`````
但是像上面那样,在有范形做为参数的情况下,必须要有不同的返回值```
各数,排列相同,只是其中的List为不同的范形时,不能重载,只有当范形值不同,
只有相同List ,范型不同,返回值也不同时,才能被重载,
好奇怪,在重载时同类型的范形参数到底是被认为是相同参数还是不同参数呢????